// written by Che de Bruin // last updated March 13 2002 // email: phatman@phatman.com var sImageLocation = "\\\\images\\" var sVisible = 'n'; var activeComboBoxObj = ''; var activeComboRow = 0; var activeComboRowMin = 0; var activeComboRowMax = 0; var browserVersion = 5; function comboBox() { sName = arguments[0]||sName; activeComboBoxObj = document.getElementById(sName); var baseName = activeComboBoxObj.id.replace(/_box/i,''); if(sVisible == 'n') { browserVersion = parseInt(navigator.appVersion.replace(/.*MSIE/,'').replace(/;.*/,'')); activeComboBoxObj.style.display = ''; if(browserVersion > 5) { activeComboBoxObj.focus(); activeComboRow = 0; activeComboRowMin = 0; activeComboRowMax = 0; activeComboBoxObj.onkeydown = comboScroll; if(comboElementExists(baseName+'_')) activeComboRowMin = -1; activeComboRow = activeComboRowMin; var x = 0; var elementsExist = true; while(elementsExist) { elementsExist = comboElementExists(baseName+'_'+x); if(elementsExist) { activeComboRowMax = x; document.getElementById(baseName+'_'+x).style.backgroundColor='#FFFFFF'; } x++; } if(activeComboRow >= 0) document.getElementById(baseName+'_'+activeComboRow).fireEvent('onmouseover'); else document.getElementById(baseName+'_').fireEvent('onmouseover'); } sVisible = 'y'; } else { document.getElementById(sName).style.display = 'none'; sVisible = 'n'; try { var changeEvent = ''; changeEvent = document.getElementById(baseName+'_hidden').onchange.toString(); if(changeEvent != '') { if(changeEvent.lastIndexOf('function anonymous') > -1) { changeEvent = changeEvent.replace(/function anonymous\(\)/i,''); changeEvent = changeEvent.replace(/\{/,''); changeEvent = changeEvent.replace(/\}$/i,''); } eval(changeEvent); } } catch(e) {} activeComboBoxObj = ''; activeComboRow = 0; activeComboBoxObj.onkeydown = ''; } return false; } function selectComboBox(sField,sValue){ sField.value = sValue; comboBox(); } function rowHightlight(sRow,sColor){ if(browserVersion > 5) { try { if(sColor.toUpperCase() != 'WHITE' && sColor.toUpperCase() != '#FFFFFF') { document.getElementById(sRow).focus(); var sName = activeComboBoxObj.id.replace(/_box/i,''); document.getElementById(sName+'_'+activeComboRow).style.backgroundColor='#FFFFFF'; document.getElementById(sRow).style.backgroundColor = sColor; //document.getElementById(sName+'_'+parseInt(activeComboRow)).fireEvent('onmouseout'); activeComboRow = eval('sRow.replace(/'+sName+'_/i,\'\')'); if(activeComboRow.length == 0) activeComboRow = activeComboRowMin; activeComboBoxObj.focus(); } } catch(e) {} } else { document.getElementById(sRow).style.backgroundColor = sColor; } } function init() { document.onmousedown = mouseDown } function mouseDown(e) { if(sVisible == "y" && event.srcElement.id.indexOf(sName.substring(0,sName.length-4))){ comboBox(); } } function comboScroll() { try { if(activeComboBoxObj != '') { var sName = activeComboBoxObj.id.replace(/_box/i,''); var currentComboRow = parseInt(activeComboRow); if(event.keyCode == 38 && currentComboRow > activeComboRowMin) { //arrow up key if(activeComboRow > 0) document.getElementById(sName+'_'+(parseInt(activeComboRow)-1)).fireEvent('onmouseover'); else document.getElementById(sName+'_').fireEvent('onmouseover'); } if(event.keyCode == 40) { //arrow down key document.getElementById(sName+'_'+(parseInt(activeComboRow)+1)).fireEvent('onmouseover'); } if(event.keyCode == 27) { //esc key comboBox(); } if(event.keyCode == 33) { //page up key if(parseInt(activeComboRow)-6 >= activeComboRowMin) document.getElementById(sName+'_'+(parseInt(activeComboRow)-6)).fireEvent('onmouseover'); else document.getElementById(sName+'_'+activeComboRowMin).fireEvent('onmouseover'); } if(event.keyCode == 34) { //page down key if(parseInt(activeComboRow)+6 <= activeComboRowMax) document.getElementById(sName+'_'+(parseInt(activeComboRow)+6)).fireEvent('onmouseover'); else document.getElementById(sName+'_'+activeComboRowMax).fireEvent('onmouseover'); } if(event.keyCode == 35) { //end key document.getElementById(sName+'_'+activeComboRowMax).fireEvent('onmouseover'); } if(event.keyCode == 36) { //home key if(activeComboRowMin >=0) document.getElementById(sName+'_0').fireEvent('onmouseover'); else document.getElementById(sName+'_').fireEvent('onmouseover'); } if(event.keyCode == 13) { //enter key document.getElementById(sName+'_'+parseInt(activeComboRow)).fireEvent('onclick'); document.getElementById(sName+'_'+parseInt(activeComboRow)).fireEvent('onmousedown'); document.getElementById(sName+'_'+parseInt(activeComboRow)).fireEvent('onmouseup'); } } } catch(e) {} } function comboElementExists(elementID) { try { var t = document.getElementById(elementID).id; return true; } catch(e) { return false; } } function checkFieldLength(obj, size, nextObjName) { if (obj.value.length == size) eval('document.all[\'' + nextObjName + '\'].focus()'); } init();