function dhtmlselect(selectid,selectClassName,combozindex,headertext){
    var selectbox=document.getElementById(selectid)
    var combotext = "";
    if (typeof headertext != 'undefined' && headertext !='')
        combotext = headertext
    else combotext = "";

    comboHTML = combotext + combodropimage + '<div class="dropdown">'
    for (var i=0; i<selectbox.options.length; i++) {
        comboHTML = comboHTML + '<a href="javascript:myDirtySetSelect(\'' + selectid + '\',' + '\'' + selectClassName + '\',\'' + combozindex + '\',' + '\'' + selectbox.options[i].value + '\')" id="' + selectid + '_' + selectbox.options[i].value + '">' + selectbox.options[i].text + '</a>'
    }
    comboHTML = comboHTML + '</div>';

    var dcombobox = document.getElementById('dhtml_'+selectid)
    if (dcombobox != null)
        dcombobox.innerHTML = comboHTML;
    else
        document.write('<div id="dhtml_'+selectid+'" class="'+selectClassName+'">' + comboHTML + '</div>')

    selectbox.style.display="none";
    var dhtmlselectbox = document.getElementById("dhtml_"+selectid);
    dhtmlselectbox.style.zIndex=combozindex;
    combozindex--;

    dhtmlselectbox.getElementsByTagName("div")[0].style.top=dhtmlselectbox.offsetHeight-combodropoffsetY+"px"
    if (combodropimage!="")
    dhtmlselectbox.onclick = function () {
        showHideSubMenu(dhtmlselectbox,selectid);
    }
}

function InitializeDropDown (selectid,selectClassName,combozindex,optionid) {
    var selectbox = document.getElementById(selectid);
    var combobox = document.getElementById('dhtml_'+selectid);
    var combotext = "";
    
    for (var i=0; i<selectbox.options.length; i++) {
        if (selectbox.options[i].value == optionid) {
            selectbox.value = optionid;
            combotext = selectbox.options[i].text
            
            if(combobox) {
                combobox.style.overflow="hidden";
            }
        }
    }
    dhtmlselect(selectid,selectClassName,combozindex,combotext);
}
function myDirtySetSelect(selectid,selectClassName,combozindex,optionid) {

    var selectbox = document.getElementById(selectid);
    var combobox = document.getElementById('dhtml_'+selectid);
    var combotext = '';
    var dhtmlselectbox=document.getElementById("dhtml_"+selectid);
    
    dhtmlselectbox.getElementsByTagName("div")[0].style.display="none";
    dhtmlselectbox.style.overflow="hidden";
    
    for (var i=0; i<selectbox.options.length; i++) {
        if (selectbox.options[i].value == optionid) {
            selectbox.value = optionid;
            combotext = selectbox.options[i].text
            if(combobox) {
                combobox.style.overflow="hidden";
            }
        }
    }
    
    dhtmlselect(selectid,selectClassName,combozindex,combotext);

    if (selectbox.onchange){
        selectbox.onchange();
        document.forms[0].submit();
    }
}
/*--*/
function setSelectHeight (selectid) {
    var getSelect=document.getElementById(selectid);
    var offSetHeight=20;
    var selectHeight=getSelect.options.length*offSetHeight;
    if (selectHeight > 100) {
        return 100;
    }
    else {
        if (getSelect.options.length == 1) {
            return 0;
        }
        else {
            return selectHeight;
        }
    }
}

/*-DropDown ClickOutSide-*/
var mouseX, mouseY;
var initialize = 0;
var unclickableZone;
var menuItem;
var lastMenuItem;
var leftPos;
var topPos;


function showHideSubMenu (dhtmlselectbox,selectid) {
    //get Parent coordinates
    leftPos = dhtmlselectbox.offsetLeft;
    topPos = dhtmlselectbox.offsetTop;

    menuItem = dhtmlselectbox;

    unclickableZone = menuItem.getElementsByTagName("div")[0];

    if (unclickableZone.style.display == "block") {
        unclickableZone.style.display = "none";
        initialize = 0;
    }
    else {
        unclickableZone.style.display = "block";

        var setHeight = setSelectHeight(selectid);
        menuItem.getElementsByTagName("div")[0].style.height = setHeight + "px";
        menuItem.style.overflow="visible";
        
        initialize = 1;
    }

    if (lastMenuItem && lastMenuItem != menuItem) {
        lastMenuItem.getElementsByTagName("div")[0].style.display="none";
    }

    lastMenuItem = menuItem;
}

function getMousePos(e) {
    if (!e) var e = window.event || window.Event;

    if('undefined'!=typeof e.pageX) {
        mouseX = e.pageX;
        mouseY = e.pageY;
    }
    else {
        mouseX = e.clientX + document.documentElement.scrollLeft;
        mouseY = e.clientY + document.documentElement.scrollTop;
    }

    if (initialize == 1) {
        clickOutSide();
    }
}

// tell Mozilla to start listening:
if(window.Event && document.captureEvents) document.captureEvents(Event.MOUSEMOVE);

document.onmousemove = getMousePos;

function clickOutSide () {
    document.onclick = function () {
        if (unclickableZone) {
            var leftEdge = unclickableZone.offsetLeft + leftPos;
            var rightEdge = unclickableZone.offsetLeft + leftPos + menuItem.clientWidth;
            var topEdge = topPos;
            var bottomEdge = unclickableZone.offsetTop + topPos + unclickableZone.clientHeight;

            //Click OutSide
            if (!((leftEdge <= mouseX) && (mouseX <= rightEdge) && (topEdge <= mouseY) && (mouseY <= bottomEdge)) && initialize == 1) {
                menuItem.getElementsByTagName("div")[0].style.display = "none";
                initialize = 0;
            }
        }
    }
}
