var SCAN_TIMEOUT = 4; var scanTimeout = SCAN_TIMEOUT; var PAGE_TIMEOUT = 230; //230 var pageTimer = 0; var strInput = ""; var discardedStrInput = ""; var BadgeStartCharCode = 37; var BadgeEndCharCode = 13; var BadgeSepCharCode = 94; var BadgeStartChar = String.fromCharCode(BadgeStartCharCode); var BadgeSepChar = String.fromCharCode(BadgeSepCharCode); var RedirPage = "Contact-Information.aspx"; var MinFieldsToCapture = 5; var AllowMultipleEndChars = false; var AlwaysCapture = false; var WaitForHowManyEndChars = 1; var PreReplaceStrings = new Array(); var ScanDivElementId = ""; var BodyDivElementId = ""; var CaptureInProgress = false; var EndCharCount = 0; function setVisibleElement(ElementId,DisplayType) { if (ElementId && document.getElementById(ElementId)) { document.getElementById(ElementId).style.display = DisplayType; } } function setInnerHTML (ElementId,text,additive) { if (ElementId && document.getElementById(ElementId)) { if (additive) document.getElementById(ElementId).innerHTML += text; else document.getElementById(ElementId).innerHTML = text; } } function checkScanTimeout () { scanTimeout -= 1; if (scanTimeout == 0) { discardedStrInput = strInput; if (document.activeElement && document.activeElement.type) { var el = document.activeElement; if (el.type == "text" || el.type == "password") el.value += discardedStrInput; if (el.type == "textarea") el.innerHTML += discardedStrInput; } strInput = ""; setVisibleElement(BodyDivElementId,"block"); setVisibleElement(ScanDivElementId,"none"); CaptureInProgress = false; EndCharCount = 0; scanTimeout = SCAN_TIMEOUT; } else { setTimeout ("checkScanTimeout()",500); } } function filterKeys(event) { event = (event) ? event : ((window.event) ? event : null); var keyCode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode); var keyChar = String.fromCharCode(keyCode); if (CaptureInProgress) { if (keyCode == 9) { strInput += keyChar; return false; } } return true; } function captureKeys(event) { pageTimer = 0; event = (event) ? event : ((window.event) ? event : null); var SendKeyToPage = true; var keyCode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode); var keyChar = String.fromCharCode(keyCode); //alert (keyChar); scanTimeout = SCAN_TIMEOUT; if (keyChar == BadgeStartChar && !CaptureInProgress) { setVisibleElement(BodyDivElementId,"none"); setInnerHTML(ScanDivElementId,"Processing Badge Data ",false); setVisibleElement(ScanDivElementId,"block"); strInput = keyChar; CaptureInProgress = true; EndCharCount = 0; SendKeyToPage = false; setTimeout ("checkScanTimeout()",500); } else if(CaptureInProgress || AlwaysCapture) { strInput += keyChar; SendKeyToPage = false; if ((strInput.length % 5) == 0) { setInnerHTML(ScanDivElementId,". ",true); } } if (keyCode == BadgeEndCharCode && (CaptureInProgress || AlwaysCapture)) { EndCharCount++; // check for valid input var strInputReplaced = strInput; // replace the pre-replace strings for (var i = 0; i < PreReplaceStrings.length; i++) while (strInputReplaced.indexOf(PreReplaceStrings[i][0]) > -1) strInputReplaced = strInputReplaced.replace(PreReplaceStrings[i][0],PreReplaceStrings[i][1]); var a = (strInputReplaced+BadgeSepChar).split(BadgeSepChar); //alert (a.length); if (a.length > MinFieldsToCapture && EndCharCount >= WaitForHowManyEndChars) { window.location.href = RedirPage + "?cardscan=wedge&carddata=" + escape(strInputReplaced); // document.all.cardform.carddata.value = strInput; // document.all.cardform.submit(); } else { if (!AllowMultipleEndChars) { strInput = ""; setVisibleElement(BodyDivElementId,"block"); setVisibleElement(ScanDivElementId,"none"); } } //alert (strInput); } return SendKeyToPage; }