var TAXNET_UI = new Object();
TAXNET_UI.IE_Version = new Number(((window.navigator.appVersion.split('; '))[1].split(' '))[1]);
TAXNET_UI.CR = new Object();
TAXNET_UI.CR.ReverseBackground = '#103268';      //¸ñ·Ï ¸¶¿ì½º ¿À¹ö »ö»ó
TAXNET_UI.CR.ReverseText = '#FFF';              //¸ñ·Ï¼±ÅÃ½Ã ÅØ½ºÆ® »ö»ó
TAXNET_UI.CR.Border = '#103268';                 //¼¿·ºÆ® ¸Þ´º Å×µÎ¸® »ö»ó
TAXNET_UI.CR.BorderActive = '#103268';              //¼¿·ºÆ® ¸Þ´º¿¡ ¸¶¿ì½º ¿À¹ö »ö»ó
TAXNET_UI.ImgPrefix = '/images/';  //ÀÌ¹ÌÁö °æ·Î
TAXNET_UI.DefaultHeight = 20;                   //¼¿·ºÆ® ¸Þ´º ³ôÀÌ
TAXNET_UI.ButtonWidth = 10;                     //¹öÆ° °¡·ÎÅ©±â  
TAXNET_UI.OptionsDivStyle = ''
  + ' display:none;'
  + ' z-index:20;'
  + ' position:absolute;'
  + ' border:1 solid '+ TAXNET_UI.CR.Border+';'
  + ' background-color:white;'
  + ' padding-left:0px;'						// ¼¿·ºÆ® ¹Ú½º ÆîÃÄÁ³À»¶§ option ¸íµéÀÇ °ø¹éÁ¶Á¤.
  + ' scrollbar-face-color:#D4D0C8;'
  + ' scrollbar-shadow-color:white;'
  + ' scrollbar-highlight-color:#F6F5F4;'
  + ' scrollbar-3dlight-color:white'
  + ' scrollbar-darkshadow-color:#86837E;'
  + ' scrollbar-track-color:#F6F5F4;'
  + ' scrollbar-arrow-color:#86837E;';
TAXNET_UI.OptionNobrStyle = ''
  + ' font-size:9pt;'
  + ' font-family:±¼¸²;';

var TAXNET_UI_VAR = new Object();
TAXNET_UI_VAR.DivDummy = document.createElement("DIV");
TAXNET_UI_VAR.SelectList = new Array();
TAXNET_UI_VAR.bEventAttached = false;

var TAXNET_UI_CreatedElements = new Object();

function unloadObjects() {
    try {
        if (TAXNET_UI_VAR && TAXNET_UI_VAR.SelectList) {
            for (key in TAXNET_UI_VAR.SelectList) {
                if (TAXNET_UI_VAR.SelectList[key]) {
                    try {
                        TAXNET_UI_VAR.SelectList[key].select.setAttribute('SS', 0);
                    } catch (e) {};
                    delete TAXNET_UI_VAR.SelectList[key];
                }
            }
        }
    } catch (e) {};
}

attachEvent("onunload", unloadObjects);

function TAXNET_UI_create (srcHTML, ListMax, bAutoDetect) {
    this.ssID = TAXNET_UI_VAR.SelectList.length;
    this.bOriginalSelect = (bAutoDetect && TAXNET_UI.IE_Version < 5.5);
    this.select = TAXNET_UI_createElement(srcHTML);
    this.selectedIndex = this.select.selectedIndex;
    this.options = this.select.options;
    this.width = parseInt(this.select.style.width);
    this.height = (this.select.style.height) ? parseInt(this.select.style.height) : TAXNET_UI.DefaultHeight;
    this.OptionHeight = this.height - 4;
    this.bListDown = (ListMax && '-'==ListMax.toString().substr(0, 1)) ? false : true;
    this.ListMax = (!isNaN(parseInt(ListMax))) ? Math.abs(ListMax) : 100;

    this.Table;
    this.TitleDiv;
    this.TitleTable;
    this.TitleWrapper;
    this.OptionsDiv;
    this.OptionsWrapper;
    this.OptionsTable;
    this.bFocused = false;
    this.bExpanded = false;
    this.bReverse = false;

    // private method
    this.isThisEventToBeCanceled = TAXNET_UI_isThisEventToBeCanceled;
    this.toggleTitle = TAXNET_UI_toggleTitle;
    this.syncSelectedIndex = TAXNET_UI_syncSelectedIndex;
    this.toggleOptions = TAXNET_UI_toggleOptions;
    this.turnOnOption = TAXNET_UI_turnOnOption;
    this.turnOffOption = TAXNET_UI_turnOffOption;
    this.handleMousewheel = TAXNET_UI_handleMousewheel;
    this.handleOverTitle = TAXNET_UI_handleOverTitle;
    this.handleOutTitle = TAXNET_UI_handleOutTitle;
    this.handleOverOption = TAXNET_UI_handleOverOption;
    this.createTable = TAXNET_UI_createTable;
    this.createTitleDiv = TAXNET_UI_createTitleDiv;
    this.createOptionsDiv = TAXNET_UI_createOptionsDiv;
    this.createOptionTr = TAXNET_UI_createOptionTr;
    this.adjustOptionsDiv = TAXNET_UI_adjustOptionsDiv;
    this.syncOptions = TAXNET_UI_syncOptions;
    this.pressOption = TAXNET_UI_pressOption;
    this.moveOption = TAXNET_UI_moveOption;
    this.releaseOption = TAXNET_UI_releaseOption;
    this.pressTitle = TAXNET_UI_pressTitle;
    this.releaseTitle = TAXNET_UI_releaseTitle;

    // public method
    this.display = TAXNET_UI_display;
    this.insertOption = TAXNET_UI_insertOption;
    this.deleteOption = TAXNET_UI_deleteOption;
    this.changeOption = TAXNET_UI_changeOption;

    // initiate
    this.createTable();
    this.select.setAttribute('SS', this);
    if (!this.bOriginalSelect)
        this.select.onpropertychange = TAXNET_UI_handlePropertychange;
    TAXNET_UI_VAR.SelectList[this.ssID] = this;
}

function TAXNET_UI_display() {
    document.write("<div id=TAXNET_UI_TempDiv></div>\n");
    document.all.TAXNET_UI_TempDiv.appendChild(this.Table);
    document.all.TAXNET_UI_TempDiv.removeNode();
}

function TAXNET_UI_write (srcHTML, ListMax, bAutoDetect) {
    var oSS = new TAXNET_UI_create(srcHTML, ListMax, bAutoDetect);
    oSS.display();
    return oSS;
}

function TAXNET_UI_insertOption (value, innerText, idx) {
    var NewOption = document.createElement("OPTION");
    TAXNET_UI_CreatedElements[TAXNET_UI_CreatedElements.length] = NewOption;
    this.options.add(NewOption, idx);
    NewOption.innerText = innerText;
    NewOption.value = value;

    if (!this.bOriginalSelect) this.createOptionTr(idx);
    this.syncOptions();
    this.adjustOptionsDiv();
    this.syncSelectedIndex();
}

function TAXNET_UI_deleteOption (idx){
    this.options.remove(idx);
    if (!this.bOriginalSelect) this.OptionsTable.deleteRow(idx);
    this.syncOptions();
    this.adjustOptionsDiv();
    this.syncSelectedIndex();
}

function TAXNET_UI_changeOption (idx, value, innerText) {
    this.options[idx].value = value;
    this.options[idx].innerText = innerText;
    this.syncOptions();
    this.syncSelectedIndex();
}

function TAXNET_UI_cancelEvent (event) {
  event.cancelBubble = true;
  event.returnValue = false;
}

function TAXNET_UI_isThisEventToBeCanceled (event) {
    if ('object' == typeof(event)) {
        switch(event.type) {
            case 'mousedown':
            if (!(event.button & 1)) return true;
            break;
            
            case 'mouseup':
            if (!(event.button & 1)) return true;
            if (TAXNET_UI.IE_Version >= 5.5 && event.srcElement != this.srcElementOfLastMousedown && this.srcElementOfLastMousedown != null) {
                this.srcElementOfLastMousedown = null;
                return true;
            }
            break;
        
            case 'mouseout':
                if (!(TAXNET_UI.IE_Version < 5.5 && event.srcElement == this.srcElementOfLastMousedown))
                    return true;
            break;
      
            case 'mousemove':
            if (TAXNET_UI.IE_Version >= 5.5 && event.srcElement != this.srcElementOfLastMousedown && this.srcElementOfLastMousedown != null)
                return true;
            break;
        }
    }
    return false;
}

function TAXNET_UI_createElement(html) {
    TAXNET_UI_VAR.DivDummy.insertAdjacentHTML('afterBegin', html);
    var oEl = TAXNET_UI_VAR.DivDummy.children(0);
    while (TAXNET_UI_VAR.DivDummy.children.length > 0) {
        TAXNET_UI_VAR.DivDummy.removeChild(TAXNET_UI_VAR.DivDummy.children(0));
    }
    return oEl;
}

function TAXNET_UI_blurExcept(except) {
    TAXNET_UI_cancelEvent(window.event);
    except = ('number'==typeof(except)) ? except : -1;
    var bHasToDetachEvent = true;

    for (var i=0; i < TAXNET_UI_VAR.SelectList.length; i++) {
        if (-1==except && TAXNET_UI_VAR.SelectList[i].bFocused && TAXNET_UI_VAR.SelectList[i].bExpanded) {
            TAXNET_UI_VAR.SelectList[i].toggleOptions(false, true);
            TAXNET_UI_VAR.SelectList[i].toggleTitle(true);
            bHasToDetachEvent = false;
        }
        else if (i!=except) {
            if (TAXNET_UI_VAR.SelectList[i].bExpanded)
                TAXNET_UI_VAR.SelectList[i].toggleOptions(false, true);

            if (TAXNET_UI_VAR.SelectList[i].bReverse)
                TAXNET_UI_VAR.SelectList[i].toggleTitle(false);
            TAXNET_UI_VAR.SelectList[i].bFocused = false;
        }
    }

    if (TAXNET_UI_VAR.bEventAttached && bHasToDetachEvent) {
        document.detachEvent('onmousedown', TAXNET_UI_blurExcept);
        document.detachEvent('ondblclick', TAXNET_UI_blurExcept);
        TAXNET_UI_VAR.bEventAttached = false;
    }
}

function TAXNET_UI_syncSelectedIndex() {
    this.selectedIndex = this.select.selectedIndex;

    if (this.bOriginalSelect) return;

    if (this.TitleTable.cells(0).childNodes(0).innerText != this.options[this.selectedIndex].innerText)
        this.TitleTable.cells(0).childNodes(0).innerText = this.options[this.selectedIndex].innerText;
    if (this.bExpanded)
        this.toggleOptions(false);
}

function TAXNET_UI_toggleTitle(bReverse){
    this.bReverse = ('undefined'!=typeof(bReverse)) ? bReverse: (!this.bReverse);
    this.TitleTable.cells(0).style.backgroundColor = this.bReverse ? TAXNET_UI.CR.ReverseBackground : '';
    this.TitleTable.cells(0).style.color = this.bReverse ? TAXNET_UI.CR.ReverseText : '';
}

function TAXNET_UI_toggleOptions (bExpanded, bStrict) {
    if (!bStrict && !this.bFocused) {
        TAXNET_UI_blurExcept(this.ssID);
    }
    this.bExpanded = ('undefined'!=typeof(bExpanded)) ? bExpanded: (!this.bExpanded);

    if (this.bExpanded) {
        this.adjustOptionsDiv();
        this.OptionsDiv.style.display = 'block';
        if (!bStrict) {
            this.toggleTitle(false);
            this.handleOverOption(this.selectedIndex);
        }
        this.handleOutTitle();
    }
    else {
        this.OptionsDiv.style.display = 'none';
        if (!bStrict) {
            this.toggleTitle(true);
        }
    }
    if (!bStrict) {
        this.bFocused = true;

        if (!TAXNET_UI_VAR.bEventAttached) {
            document.attachEvent('onmousedown', TAXNET_UI_blurExcept);
            document.attachEvent('ondblclick', TAXNET_UI_blurExcept);
            TAXNET_UI_VAR.bEventAttached = true;
        }
    }
}

function TAXNET_UI_handlePropertychange ()
{
  if ('propertychange'==window.event.type && 'selectedIndex'==window.event.propertyName) {
    var oSS = window.event.srcElement.SS;
    oSS.syncSelectedIndex();

    if (null != oSS.select.onchange)
      oSS.select.onchange();
  }
}

function TAXNET_UI_handleMousewheel (event) {
    var idx = this.selectedIndex;
    if ('mousewheel'==event.type && this.bFocused && this.bReverse) {
        for (var i=0; i < event.wheelDelta; i += 120) idx--;
        for (var i=0; i > event.wheelDelta; i -= 120) idx++;
    }
    idx = Math.max(idx, 0);
    idx = Math.min(idx, this.options.length - 1);
    this.select.selectedIndex = idx;
}

function TAXNET_UI_handleOverTitle() {
    if (this.bExpanded) return;

    this.TitleTable.style.borderColor = TAXNET_UI.CR.BorderActive;
    this.TitleTable.cells(1).style.display = 'none';
    this.TitleTable.cells(2).style.display = 'block';
}

function TAXNET_UI_handleOutTitle() {
    this.TitleTable.style.borderColor = TAXNET_UI.CR.Border;
    this.TitleTable.cells(2).style.display = 'none';
    this.TitleTable.cells(1).style.display = 'block';
}

function TAXNET_UI_handleOverOption(idx) {
    for (var i=0; i < this.options.length; i++) {
        if (i==idx) this.turnOnOption(i);
        else this.turnOffOption(i);
    }
}

function TAXNET_UI_turnOnOption(idx) {
    this.OptionsTable.cells(idx).style.color = TAXNET_UI.CR.ReverseText;
    this.OptionsTable.cells(idx).style.backgroundColor = TAXNET_UI.CR.ReverseBackground;
}

function TAXNET_UI_turnOffOption(idx) {
    this.OptionsTable.cells(idx).style.color = '';
    this.OptionsTable.cells(idx).style.backgroundColor = '';
}

function TAXNET_UI_adjustOptionsDiv() {
    if (this.bOriginalSelect) return;

    this.OptionsDiv.style.width = this.width;
    this.OptionsDiv.style.height = Math.min(this.options.length, this.ListMax) * this.OptionHeight + 2;
    this.OptionsWrapper.style.height = this.options.length * this.OptionHeight;
    this.OptionsDiv.style.overflowY = (this.options.length > this.ListMax) ? 'scroll' : '';

    var top = this.Table.offsetTop;
    var left = this.Table.offsetLeft;

    for (var El = this.Table.offsetParent; 'BODY'!=El.tagName && 'absolute'!=El.style.position && 'relative'!=El.style.position; El = El.offsetParent) {
        if ('TABLE' != El.tagName) {
            top += El.clientTop;
            left += El.clientLeft;
        }
        top += El.offsetTop;
        left += El.offsetLeft;
    }
    this.OptionsDiv.style.top = (this.bListDown) ? (top + this.height) : (top - parseInt(this.OptionsDiv.style.height));
    this.OptionsDiv.style.left = left;

    this.TitleWrapper.style.top = 0;
    this.TitleWrapper.style.left = 0;
}

function TAXNET_UI_syncOptions(){
    if (this.bOriginalSelect) return;

    for (var i=0; i < this.options.length; i++) {
        this.OptionsTable.cells(i).setAttribute('index', i);
        if (this.OptionsTable.cells(i).childNodes(0).innerText != this.options[i].innerText)
        this.OptionsTable.cells(i).childNodes(0).innerText = this.options[i].innerText;
    }
}

function TAXNET_UI_pressTitle(event){
    TAXNET_UI_cancelEvent(event);
    this.srcElementOfLastMousedown = event.srcElement;
    this.toggleOptions();
}

function TAXNET_UI_releaseTitle(event) {
    TAXNET_UI_cancelEvent(event);
    if (this.isThisEventToBeCanceled(event)) return;
    this.srcElementOfLastMousedown = null;
}

function TAXNET_UI_pressOption(event) {
    TAXNET_UI_cancelEvent(event);
    this.srcElementOfLastMousedown = event.srcElement;
}

function TAXNET_UI_moveOption(event) {
    TAXNET_UI_cancelEvent(event);
    if (this.isThisEventToBeCanceled(event)) return;
    if (!(event.offsetX >= 0 && event.offsetX <= this.OptionsTable.offsetWidth)) return;

    this.handleOverOption(Math.floor(event.offsetY / this.OptionHeight));
}

function TAXNET_UI_releaseOption(event){
    TAXNET_UI_cancelEvent(event);

    if (this.isThisEventToBeCanceled(event)) return;

    this.srcElementOfLastMousedown = null;

    if (event.offsetX >= 0 && event.offsetX <= this.OptionsTable.offsetWidth) {
        this.toggleOptions(false);
        this.select.selectedIndex = Math.floor(event.offsetY / this.OptionHeight);
    }
}

function TAXNET_UI_createTable() {
    this.Table = TAXNET_UI_createElement(""
        + "<table border=0 cellpadding=0 cellspacing=0 style='table-layout:fixed; cursor:default'>"
        + "<tr><td></td></tr>"
        + "</table>"
    );
    
    if (!isNaN(this.width)) this.Table.style.width = this.width;
    this.Table.style.height = this.height;

    if (!this.bOriginalSelect) {
    this.createTitleDiv();
    this.createOptionsDiv();
    this.Table.cells(0).appendChild(this.TitleDiv);
    this.Table.cells(0).appendChild(this.OptionsDiv);
    }
    else {
        this.Table.cells(0).appendChild(this.select);
    }
}

function TAXNET_UI_createTitleDiv() {
    this.TitleDiv = TAXNET_UI_createElement(""
        + "<div style='position:relative; top:7px; left:7px;'>"
        + "  <table border=0 cellpadding=0 cellspacing=1"
        + "    height="+this.height
        + "    bgcolor=white"
        + "    style='table-layout:fixed; border:0 solid "+TAXNET_UI.CR.Border+";'"
        + "    onmouseover='TAXNET_UI_VAR.SelectList["+this.ssID+"].adjustOptionsDiv()'"
        + "  >"
        + "  <tr>"
        + "    <td style='padding-left:5px;'><nobr style='text-oveflow:hidden;"+TAXNET_UI.OptionNobrStyle+"'></nobr></td>"
        + "    <td width="+TAXNET_UI.ButtonWidth+" align=center style='word-wrap:normal'></td>"
        + "    <td style='display:none' width="+TAXNET_UI.ButtonWidth+" align=center style='word-wrap:normal'></td>"
        + "    <td style='display:none'></td>"
        + "  </tr>"
        + "  </table>"
        + "</div>"
    );
    
    this.TitleTable = this.TitleDiv.childNodes(0);
    this.TitleTable.cells(0).childNodes(0).innerText = this.options[this.selectedIndex].innerText;
    this.TitleTable.cells(1).innerHTML = "<img src='"+TAXNET_UI.ImgPrefix+"/down.gif' border=0 align=absmiddle>";
    this.TitleTable.cells(2).innerHTML = "<img src='"+TAXNET_UI.ImgPrefix+"/down_s.gif' border=0 align=absmiddle>";
    this.TitleTable.cells(3).appendChild(this.select);
    this.TitleWrapper = document.createElement(""
        + "<img src='"+TAXNET_UI.ImgPrefix+"/blank.gif'"
        + "  style='position:absolute; top:0; left:0; z-index:2; width:100%; height:"+this.height+";'"
        + "  onmouseover='TAXNET_UI_VAR.SelectList["+this.ssID+"].handleOverTitle()'"
        + "  onmouseout='TAXNET_UI_VAR.SelectList["+this.ssID+"].handleOutTitle(); TAXNET_UI_VAR.SelectList["+this.ssID+"].releaseTitle(window.event);'"
        + "  onmousedown='TAXNET_UI_VAR.SelectList["+this.ssID+"].pressTitle(window.event)'"
        + "  ondblclick='TAXNET_UI_VAR.SelectList["+this.ssID+"].pressTitle(window.event); TAXNET_UI_VAR.SelectList["+this.ssID+"].releaseTitle(window.event);'"
        + "  onmouseup='TAXNET_UI_VAR.SelectList["+this.ssID+"].releaseTitle(window.event)'"
        + "  onmousewheel='TAXNET_UI_VAR.SelectList["+this.ssID+"].handleMousewheel(window.event)'"
        + "  ondragstart='TAXNET_UI_cancelEvent(window.event)'"
        + ">"
    );
    TAXNET_UI_CreatedElements[TAXNET_UI_CreatedElements.length] = this.TitleWrapper;
    this.TitleDiv.appendChild(this.TitleWrapper);
}

function TAXNET_UI_createOptionsDiv() {
    this.OptionsDiv = TAXNET_UI_createElement(""
        + "<div style='"+TAXNET_UI.OptionsDivStyle+";"
        + "  onscroll='TAXNET_UI_VAR.SelectList["+this.ssID+"].moveOption(window.event)'"
        + "  onmousedown='TAXNET_UI_cancelEvent(window.event)'"
        + ">"
        + "  <table border=0 cellpadding=0 cellspacing=0 width=100% style='table-layout:fixed;'>"
        + "  </table>"
        + "</div>"
    );
    this.OptionsTable = this.OptionsDiv.childNodes(0);
    for (var i=0; i < this.options.length; i++) {
        this.createOptionTr(i);
    }
    this.syncOptions();
    this.OptionsWrapper = document.createElement(""
        + "<img src='"+TAXNET_UI.ImgPrefix+"/blank.gif'"
        + "  style='position:absolute; top:0; left:0; width:100%;'"
        + "  onmousedown='TAXNET_UI_VAR.SelectList["+this.ssID+"].pressOption(window.event)'"
        + "  onmousemove='TAXNET_UI_VAR.SelectList["+this.ssID+"].moveOption(window.event)'"
        + "  onmouseup='TAXNET_UI_VAR.SelectList["+this.ssID+"].releaseOption(window.event)'"
        + "  onmouseout='TAXNET_UI_VAR.SelectList["+this.ssID+"].releaseOption(window.event)'"
        + "  ondragstart='TAXNET_UI_cancelEvent(window.event)'"
        + ">"
    );
    TAXNET_UI_CreatedElements[TAXNET_UI_CreatedElements.length] = this.OptionsWrapper;
    this.OptionsDiv.appendChild(this.OptionsWrapper);
}

//option µé¾î°¡´Â ºÎºÐ¿¡ 10px°ø°£ ¶ç¿ì±â
function TAXNET_UI_createOptionTr(idx) {
    idx = ('undefined'!=typeof(idx)) ? idx : this.options.length - 1;
    var OptionTr = this.OptionsTable.insertRow(-1);
    var OptionTd = document.createElement("<td style='padding-left:10px;' height="+this.OptionHeight+"></td>");
    TAXNET_UI_CreatedElements[TAXNET_UI_CreatedElements.length] = this.OptionsTd;
    OptionTd.appendChild(document.createElement("<nobr style='"+TAXNET_UI.OptionNobrStyle+"'></nobr>"));
    OptionTr.appendChild(OptionTd);
}

function Menu_Change(Obj) {
    var f=document.form1;
    var _Obj=Obj.selectedIndex;

    if(Obj.options[_Obj].value) document.location.replace(Obj.options[_Obj].value);
    else return false;
}