// JavaScript Document for Wireless Freedom

//--- replacement code for TabNext() ----------------------------
// suObjCurrent		event triggering object
// suEvent		the event
// suArray		list of IDs for the collection of objects
//---------------------------------------------------------------
function singleUnit(suObjCurrent,suEvent,suArray) {
	if (suEvent.type.toUpperCase() == "KEYDOWN" || suEvent.type.toUpperCase() == "KEYUP") {
		if (suEvent.keyCode == 9 || suEvent.keyCode == 20 || suEvent.keyCode == 27 || suEvent.keyCode == 45 || suEvent.keyCode == 91 || suEvent.keyCode == 144 || suEvent.keyCode == 144) {
			// tab, capslock, escape, insert, windows, numlock, scroll-lock
		}
		else if (suEvent.keyCode >= 33 && suEvent.keyCode <= 40) {
			// page up/page down, home/end, and arrow keys
		}
		else if (suEvent.keyCode >= 16 && suEvent.keyCode <= 18) {
			// shift, control, alt
		}
		else if (suEvent.keyCode >= 112 && suEvent.keyCode <= 123) {
			// F1 to F12 keys
		}
		else {
			suTextSelect = ""
			if (suObjCurrent.setSelectionRange) {
				//firefox
				suTextSelect = suObjCurrent.value.substring(suObjCurrent.selectionStart,suObjCurrent.selectionEnd)
			}
			else if (suObjCurrent.createTextRange) {
				//ie
				suTextSelect = document.selection.createRange().text
				//track the cursor position within each form element
				suObjCurrent.cursorPosition = document.selection.createRange().duplicate()
			}
			if (suTextSelect.length == 0) {
				// current object properties
				suObjNext = suObjCurrent
				suObjPrevious = suObjCurrent
				suObjSize = suObjCurrent.size
				suObjLength = suObjCurrent.value.length
				
				// find next/previous objects
				suIndex = 0
				if (suArray.length && document.getElementById) {
					for (suLoop=0;suLoop<suArray.length;suLoop++) {
						suObj = document.getElementById(suArray[suLoop])
						if (suObjCurrent == suObj) {
							suIndex = suLoop
							break
						}
					}
					if (suIndex <= suArray.length) {
						suObjNext = document.getElementById(suArray[suIndex+1])
					}
					if (suIndex > 0) {
						suObjPrevious = document.getElementById(suArray[suIndex-1])
					}
				}
				// move to next/previous field
				if (suObjNext && suObjLength == suObjSize && suEvent.keyCode != 8 && suEvent.keyCode != 46) {
					suObjNext.focus()
					//place cursor at the end of the element's text
					if (suObjNext.setSelectionRange) {
						suObjNext.selectionStart = suObjNext.value.length
						suObjNext.selectionEnd = suObjNext.value.length
					}
					else if (suObjNext.createTextRange && suObjNext.cursorPosition) {
							suObjNext.value = suObjNext.value + suObjNext.cursorPosition.text
							suObjNext.value = suObjNext.value.substring(0,suObjNext.size)
					}
				}
				else if (suObjPrevious && suObjLength == 0 && (suEvent.keyCode == 8 || suEvent.keyCode == 46)) {
					suObjPrevious.focus()
					//place cursor at the end of the element's text
					if (suObjPrevious.setSelectionRange) {
						suObjPrevious.selectionStart = suObjPrevious.value.length
						suObjPrevious.selectionEnd = suObjPrevious.value.length
					}
					else if (suObjPrevious.createTextRange && suObjPrevious.cursorPosition) {
						suObjPrevious.value = suObjPrevious.value + suObjPrevious.cursorPosition.text
						suObjPrevious.value = suObjPrevious.value.substring(0,suObjPrevious.size)
					}
				}
			}
		}
	}
}