/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Cyanide_7 |  */

var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e)
{
    var keyCode = (isNN) ? e.which : e.keyCode; 
    var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
    if(input.value.length >= len && !containsElement(filter,keyCode))
    {
        input.value = input.value.slice(0, len);
        var nextIdx = getNextIndexByTab(input);
        if (nextIdx != -1)
            input.form[nextIdx].focus();
        //input.form[(getIndex(input)+1) % input.form.length].focus();
    }

    function containsElement(arr, ele)
    {
        var found = false, index = 0;
        while(!found && index < arr.length)
        if(arr[index] == ele)
            found = true;
        else
            index++;
        return found;
    }

    function getIndex(input)
    {
        var index = -1, i = 0, found = false;
        while (i < input.form.length && index == -1)
            if (input.form[i] == input)
                index = i;
            else
                i++;
        return index;
    }

    function getNextIndexByTab(input)
    {
        var tabIndex = -1, i = 0;
        while (i < input.form.length && tabIndex == -1)
        {
            if (input.form[i] == input)
                tabIndex = input.form[i].tabIndex;
            else
                i++;
        }
        if (tabIndex != -1)
        {
            // find index of element with next tabindex that is not disabled
            i = 0;
            while (i < input.form.length)
            {
                if (!input.form[i].disabled && input.form[i].tabIndex > tabIndex)
                    return i;
                i++;
            }
            return -1;
        }
        return -1;
    }

    return true;
}

