﻿
var lastField;
var lastColor;

function FocusInput(obj)
{
    if(lastField != null)
    {
        lastField.style.backgroundColor = lastColor;
    }
    lastField = obj;
    lastColor = lastField.style.backgroundColor;
    obj.style.backgroundColor = '#EEEE80';
}

function numbersOnly( e )
{
    var unicode = e.charCode ? e.charCode : e.keyCode;

    var control = false; //window.event.ctrlKey;
    var shift = false; //window.event.shiftKey;
    
    
   if(window.event){
        control = window.event.ctrlKey;
    }
    else{
      control = e.ctrlKey;
    } 
    
    
    return ( unicode == 8 ) // tab
        || ( unicode == 9 ) // backspace
        || (control && ( unicode == 99 )) // ctrl-c
        || (control && ( unicode == 118 )) // ctrl-v
        || (control && ( unicode == 120 )) // ctrl-x
        || (control && ( unicode == 97 )) // ctrl-a
        || ( unicode == 27 ) // esc
        || ( unicode == 36 ) // pos 1
        || ( unicode == 37 ) // cursor left
        || ( unicode == 39 ) // cursor right
        || ( unicode == 46 ) // delete
        || ( unicode >= 48 && unicode <= 57 );
}

function KeyUp(e, control) {
    var unicode = e.charCode ? e.charCode : e.keyCode;
    var i = CursorPos(control);
    if (i == control.maxLength && (unicode >= 46 || unicode == 39)) {
        KeyUpIntern(control);
    }

    else if (i == 0 && (unicode == 8 || unicode == 37)) {
        KeyDownIntern(control);
    }

    else if (i > 0 && i < control.maxLength && (unicode == 37 || unicode == 39)) {
        if (unicode == 37) selectSomeText(control, i - 1, i);
        else selectSomeText(control, i, i + 1);
    }
}

function CursorPos(el){
    var sel, rng, r2, i=-1;

    if(typeof el.selectionStart=="number") {
        i=el.selectionStart;
    } 
    else if(document.selection && el.createTextRange) {
        sel=document.selection;
        if(sel){
            r2=sel.createRange();
            rng=el.createTextRange();
            rng.setEndPoint("EndToStart", r2);
            i=rng.text.length;
        }
    }

    return i;
}

function KeyUpIntern(control){
    var form = document.forms[0];
    
    if (control == null) {
        i = form.elements.length-1;
    }
    else {
        i = form.elements.length-1;
        while ((i >= 0) && (form.elements[i].id != control.id)) {
            i--;
        }
    }
    
    if (i >= 0) {
        for (j = 1;j < form.elements.length; j++){
            var element = form.elements[(i+j)%form.elements.length];
            try{
                element.focus();
                selectSomeText(element, 0, 1);
                return;
            }
            catch (ex){
            }
        }
    }
}

function KeyDownIntern(control) {
    var form = document.forms[0];

    if (control == null) {
        i = 0;
    }
    else {
        i = 0;
        while ((i < form.elements.length) && (form.elements[i].id != control.id)) {
            i++;
        }
    }

    if (i < form.elements.length) {
        for (j = 1; j < form.elements.length; j++) {
            var element = form.elements[(i - j) % form.elements.length];
            try {
                element.focus();
                selectSomeText(element, element.value.length - 1, element.value.length);
                return;
            }
            catch (ex) {
            }
        }
    }
}

function selectSomeText(element, begin, end) {
    if (element.setSelectionRange) {
        element.setSelectionRange(begin, end);
    }
    else if (element.createTextRange) {
        var range = element.createTextRange();
        range.move("character", 0);
        range.moveEnd("character", end);
        range.moveStart("character", begin);
        range.select();
    }
}
