function TabFix_keyDown(e) { var dom = document.getElementById&&!document.all; e=dom? e : event; obj =dom? e.target : e.srcElement if (e.keyCode == 9 && obj.type && obj.type=="textarea") { topScroll = obj.scrollTop; leftScroll = obj.scrollLeft; var position = TabFix_insertAtCursor(obj,'\t'); obj.focus(); obj.selectionStart=position + 1 ; obj.selectionEnd=position + 1; obj.scrollTop = topScroll; obj.scrollLeft = leftScroll; return false; } return true; } function TabFix_keyPress(e) { var dom = document.getElementById&&!document.all; e=dom? e : event; if (e.keyCode == 9) { return false; } return true; } function TabFix_insertAtCursor(myField, myValue) { //IE if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); return startPos; } else { myField.value += myValue; } return 0; } /* We'd uncomment the following lines if we wanted to apply this to all text areas, which we don't document.onkeypress=TabFix_keyPress; document.onkeydown=TabFix_keyDown; */