var combodropimage='/images/blank.gif' //path to "drop down" image
var combodropoffsetY=2 //offset of drop down menu vertically from default location (in px)

if (combodropimage!="")
    combodropimage="<img class=\"downimage\" src=\"" + combodropimage + "\" alt=\"&nbsp;\" />";
    
function dhtmlselect(selectid, selectClassName, combozindex, headertext){
    var selectbox=document.getElementById(selectid)
    var combotext = "";
    if (typeof headertext != 'undefined' && headertext !='')
        combotext = headertext;
    else combotext = "";

    //alert(combotext);
    if(combotext.length > 19)
        combotext = combotext.substring(0,19);
            
    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+'\')">'+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 myDirtySetSelect(selectid, selectClassName, combozindex, optionid) {

    var selectbox = document.getElementById(selectid);
    var combobox = document.getElementById('dhtml_'+selectid);
    var combotext = "";

    combobox.getElementsByTagName("div")[0].style.display="none";
    combobox.style.overflow="visible";

    for (var i=0; i<selectbox.options.length; i++) {
        if (selectbox.options[i].value == optionid) {
            selectbox.value = optionid;
            combotext = selectbox.options[i].text
        }
    }

    dhtmlselect(selectid,selectClassName,combozindex,combotext);

    if (selectbox.onchange){
        selectbox.onchange();
        document.forms[0].submit();
    }
}
/*--*/
function setSelectHeight (selectid) {
    var getSelect=document.getElementById(selectid);
    var offSetHeight=80;
    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 = findAbsolutePos(dhtmlselectbox)[0];
    topPos = findAbsolutePos(dhtmlselectbox)[1];

    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.onmousedown = 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;
            }
        }
    }
}

function findAbsolutePos (obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return [curleft,curtop];
	}
}
