jQuery.fn.enterToTab=function(settings){settings=$.extend({onlyRequired:false},settings);return this.each(function(){var required=settings.onlyRequired?'[validate^=not_empty]':'';var self=$(this);var textBoxes=$('input'+required,self);$(textBoxes).bind('keypress.enter',checkForEnter);function checkTypeWork(type){var allow=false;switch(type){case'button':case'submit':allow=true;break}return allow}function getNextPrevField(currField,position){var currIndex=textBoxes.index(currField);var lengthFields=textBoxes.length;var nextField=null;if(position=='next'){currIndex++;for(i=currIndex;i<lengthFields;i++){if(!$(textBoxes[i]).attr('disabled')&&!$(textBoxes[i]).attr('readonly')){if(settings.onlyRequired){if($(textBoxes[i]).val()==textBoxes[i].defaultValue){nextField=textBoxes[i];break}}else{nextField=textBoxes[i];break}}}if(i>=lengthFields){if(settings.onlyRequired&&$('input'+required+'[value!=""]',self).length==$('input'+required,self).length){$('input[type=submit],input[type=button]',self).each(function(){if($(this).attr('type')=='submit'){self.parents('form').submit()}else{$(this).click()}})}else nextField=textBoxes[0]}}else if(position=='prev'){currIndex--;for(i=currIndex;i>=0;i--){if(!$(textBoxes[i]).attr('disabled')&&!$(textBoxes[i]).attr('readonly')){if(settings.onlyRequired){if($(textBoxes[i]).val()==textBoxes[i].defaultValue){nextField=textBoxes[i];break}}else{nextField=textBoxes[i];break}}}if(i<0){nextField=textBoxes[lengthFields-1]}}return nextField}function checkForEnter(e){var go=checkTypeWork($(this).attr('type'));e=e||window.event;var k=e.charCode||e.keyCode||e.which;switch(k){case 13:if(!e.shiftKey&&go==false){var nextField=getNextPrevField(this,'next');if(nextField!=null){nextField.focus()}}else if(e.shiftKey&&go==false){var prevField=getNextPrevField(this,'prev');if(prevField!=null){prevField.focus()}}break;default:go=true}return go}})};
