function in_array(key,arr,strict){var exists=false,k,strict=!!strict;for(k in arr){if((strict&&arr[k]===key)||(!strict&&arr[k]==key)){exists=true;break;}}
return exists;}
function isNumeric(elem){var numericExpression=/^[0-9]+$/;if(elem.match(numericExpression)){return true;}}
function deciJump(input,e){if(!e)e=window.event;var keyCode=e.keyCode?e.keyCode:e.charCode;var nextInput=document.forms[input.form.name][input.tabIndex];if(keyCode==46&&input.value.length<3&&isNumeric(input.value)){nextInput.focus();nextInput.select();return false;}}
function inputJump(input,e){if(!e)e=window.event;var keyCode=e.keyCode?e.keyCode:e.charCode;var nextInput=document.forms[input.form.name][input.tabIndex];var prevInput=document.forms[input.form.name][input.tabIndex-2];var filter=[0,8,9,16,17,18,37,38,39,40,46];if(keyCode==8&&input.value.length==0){prevInput.focus();}
if((input.value.length==input.maxLength)&&(!in_array(keyCode,filter))){nextInput.focus();nextInput.select();}}
function setTabIndex(){var index=0;var allForms=document.getElementsByTagName("form");for(i=0;i<allForms.length;i++){for(n=0;n<allForms[i].elements.length;n++){allForms[i][n].tabIndex=++index;}}}
function assignFormFocusJumpFuncs(fixTabIndex,autoAttach){if(document.getElementsByTagName){var txtField=document.getElementsByTagName("input");}else{alert("Browser Doesn't support getElementsByTagName");return false;}
var fixTabIndex=!!fixTabIndex;var autoAttach=!!autoAttach;if(fixTabIndex)setTabIndex();if(autoAttach){for(i=0;i<txtField.length;i++){if(txtField[i].type=="text"&&txtField[i].maxLength>"0"){txtField[i].onkeyup=function(e){inputJump(this,e);}}
txtField[i].onclick=function(){this.select();}
txtField[i].onkeypress=function(e){return deciJump(this,event);}}}}
