var loCurrentFocus = null;
var loNrCliente = null;
var loPassword = null;
var loBody = null;
var lsClienteID='';
var lsPasswordID='';

function AreaClienteOnDomReady()
{
    // obter ClientId a partir de server tag do .net  ....
    loNrCliente = $(lsClienteID);
    loPassword = $(lsPasswordID);
    loBody = $('bodyx');

    loNrCliente.maxLength = 9;
    //loPassword.maxLength = 4;
    loPassword.maxLength = 6;

    CreateEvents();
    ClienteClicked(null);

    DesactivarSelecaoIE();
    DesactivarSelecaoFirefox();
    DesactivarSelecaoOpera();
    DesactivarSelecaoWebkit();
    GenerateRandomKeyboard();
    EsconderRandomKeyboardBotLogin();
}

function SetNumeroClienteID(psClienteID)
{
    lsClienteID = psClienteID;
}

function SetPasswordID(psPasswordID)
{
    lsPasswordID = psPasswordID;
}

function DesactivarSelecaoIE()
{
    if ( Browser.Engine.trident == true)
    {
        document.body.onselectstart=function() {            return false;        };
    }
}

function DesactivarSelecaoFirefox()
{
    if (Browser.Engine.gecko == true)
    {
        document.body.style.MozUserSelect="none";
    }
}

function DesactivarSelecaoWebkit()
{
    if (Browser.Engine.webkit == true)
    {
        document.body.style.webkitUserSelect="none";
        //document.body.onmousedown=function() {            return false;        };
    }
}

function DesactivarSelecaoOpera()
{
    if (Browser.Engine.presto == true)
    {
        document.body.onmousedown=function() {            return false;        };
    }
}


function EsconderRandomKeyboardBotLogin()
{
    var loTeclSep = $$('.tecladoSeparador');

    if ( loTeclSep.length > 0 )
    {
        loTeclSep[0].addClass('hideRandomKeyboard');
    }
}

function MostrarRandomKeyboardBotLogin()
{
    var loTeclSep = $$('.tecladoSeparador');

    if ( loTeclSep.length > 0 )
    {
        loTeclSep[0].removeClass('hideRandomKeyboard');
    }
}

function GenerateRandomKeyboard()
{
    var lsString="";

    while ( lsString.length <= 9)
    {
        var lsRandom = String( Math.random() ).replace('.','');
        //var lsNum = String(Math.floor((9-0)*Math.random()));

        for (var i=lsRandom.length-1;i>=0;i--)
        {
            var lsNum = lsRandom.substr(i,1);

            if ( lsString.indexOf(lsNum) < 0 )
            {
                lsString += lsNum ;
            }
        }
    }

    $('key0').innerHTML=lsString.substr(0,1);
    $('key0').title=lsString.substr(0,1);
    $('key1').innerHTML=lsString.substr(1,1);
    $('key1').title=lsString.substr(1,1);
    $('key2').innerHTML=lsString.substr(2,1);
    $('key2').title=lsString.substr(2,1);
    $('key3').innerHTML=lsString.substr(3,1);
    $('key3').title=lsString.substr(3,1);
    $('key4').innerHTML=lsString.substr(4,1);
    $('key4').title=lsString.substr(4,1);
    $('key5').innerHTML=lsString.substr(5,1);
    $('key5').title=lsString.substr(5,1);
    $('key6').innerHTML=lsString.substr(6,1);
    $('key6').title=lsString.substr(6,1);
    $('key7').innerHTML=lsString.substr(7,1);
    $('key7').title=lsString.substr(7,1);
    $('key8').innerHTML=lsString.substr(8,1);
    $('key8').title=lsString.substr(8,1);
    $('key9').innerHTML=lsString.substr(9,1);
    $('key9').title=lsString.substr(9,1);
}

function CreateEvents()
{
    //alert(loNrCliente);
    loNrCliente.addEvent('click', ClienteClicked);
    loNrCliente.addEvent('keydown', ClienteKeyDown);
    loNrCliente.addEvent('contextmenu', ClienteContextMenu);

    loPassword.addEvent('click', PasswordClicked);
    loPassword.addEvent('keydown', PasswordKeyDown);
    loPassword.addEvent('contextmenu', PasswordContextMenu);

    document.addEvent('mouseup', MouseUp);

    $('key1').addEvent('selectstart', function() {        return false;    } );

    $('key1').addEvent('click', KeypadClicked);
    $('key2').addEvent('click', KeypadClicked);
    $('key3').addEvent('click', KeypadClicked);
    $('key4').addEvent('click', KeypadClicked);
    $('key5').addEvent('click', KeypadClicked);
    $('key6').addEvent('click', KeypadClicked);
    $('key7').addEvent('click', KeypadClicked);
    $('key8').addEvent('click', KeypadClicked);
    $('key9').addEvent('click', KeypadClicked);
    $('key0').addEvent('click', KeypadClicked);
    $('keyC').addEvent('click', KeypadClicked);
    $('keyDel').addEvent('click', KeypadClicked);

    $('key1').addEvent('mousedown', KeypadDown);
    $('key2').addEvent('mousedown', KeypadDown);
    $('key3').addEvent('mousedown', KeypadDown);
    $('key4').addEvent('mousedown', KeypadDown);
    $('key5').addEvent('mousedown', KeypadDown);
    $('key6').addEvent('mousedown', KeypadDown);
    $('key7').addEvent('mousedown', KeypadDown);
    $('key8').addEvent('mousedown', KeypadDown);
    $('key9').addEvent('mousedown', KeypadDown);
    $('key0').addEvent('mousedown', KeypadDown);
    $('keyC').addEvent('mousedown', KeypadDown);
    $('keyDel').addEvent('mousedown', KeypadDown);
}

function KeypadDown(poEvent)
{
    if (poEvent != null)
    {
        var loKey = poEvent.target;
        loKey.addClass('keypaddown');
        poEvent.stop();
    }
}

function ClienteContextMenu(poEvent)
{
    if (poEvent != null)
    {
        poEvent.stop();
    }
}

function PasswordContextMenu(poEvent)
{
    if (poEvent != null)
    {
        poEvent.stop();
    }
}

function MouseUp(poEvent)
{
    if (poEvent != null)
    {
        //alert('mouseup');
        $('key1').removeClass('keypaddown');
        $('key2').removeClass('keypaddown');
        $('key3').removeClass('keypaddown');
        $('key4').removeClass('keypaddown');
        $('key5').removeClass('keypaddown');
        $('key6').removeClass('keypaddown');
        $('key7').removeClass('keypaddown');
        $('key8').removeClass('keypaddown');
        $('key9').removeClass('keypaddown');
        $('key0').removeClass('keypaddown');
        $('keyC').removeClass('keypaddown');
        $('keyDel').removeClass('keypaddown');
    }
}


function KeypadClicked(poEvent)
{
    if (poEvent != null)
    {
        //HTML DOM TableCell Object
        //http://www.w3schools.com/htmldom/dom_obj_tabledata.asp
        var loKey = poEvent.target;
        loKey.removeClass('keypaddown');

        var lsKey = poEvent.target.innerHTML.trim();

        //HTML DOM Text Object
        //http://www.w3schools.com/htmldom/dom_obj_text.asp
        if (loCurrentFocus != null)
        {
            //loCurrentFocus.focus();
            if ( isNaN(lsKey) == false)
            {
                //alert(loCurrentFocus.value.length + ' ' + loCurrentFocus.maxLength);
                if ( loCurrentFocus.value.length < loCurrentFocus.maxLength)
                {
                    loCurrentFocus.value += lsKey;
                }
            }
            else
            {
                var lsText = loCurrentFocus.value;

                if (lsKey == 'C')
                {
                    loCurrentFocus.value='';
                }
                else
                {
                    var liLength = lsText.length;
                    if (liLength>0)
                    {
                        loCurrentFocus.value = lsText.substr(0, liLength-1);
                    }
                }
            }
        }
        else
        {
            ClienteClicked(null);
        }

        poEvent.stop();
    }
}

function ClienteClicked(poEvent)
{
    loNrCliente.removeClass('selected');
    loPassword.removeClass('selected');
    loCurrentFocus = loNrCliente;
    loCurrentFocus.addClass('selected');
    loCurrentFocus.focus();
    //loCurrentFocus.blur();
}

// nao permite a entrada de dados pelo teclado
function ClienteKeyDown(poEvent)
{
    if (poEvent != null)
    {
        var lsText = loCurrentFocus.value;
        var lbValorValido=false;
        var lbTamExcedido = false;

        if ( lsText.length >= loCurrentFocus.maxLength )
        {
            lbTamExcedido=true;
        }

        //alert(poEvent.code);

        //permitir que o 1º valor seja uma letra 65-90 ou numero
        //permitir que o último valor seja uma letra 65-90 ou numero
        if ( (lsText.length == 0 || lsText.length == 8)
                && lbValorValido==false && lbTamExcedido == false)
        {
            if ( (poEvent.code>=65 && poEvent.code<=90)
                    || (poEvent.code>=48 && poEvent.code<=57)
                    || (poEvent.code>=96 && poEvent.code<=105)
               )
            {
                lbValorValido=true;
            }
        }

        if ( lsText.length > 0 && lbValorValido==false
                && poEvent.code==8 )
        {
            lbValorValido=true;
        }

        if ( lsText.length > 0 && lbValorValido==false
                && poEvent.code==46 )
        {
            lbValorValido=false;
            //alert(lsText.substring(0,lsText.length-1) );
            loCurrentFocus.value = lsText.substring(0,lsText.length-1);
        }


        if ( lsText.length > 0 && lsText.length <=7
                && lbValorValido==false && lbTamExcedido == false)
        {

            if ( (poEvent.code>=96 && poEvent.code<=105)
                    || (poEvent.code>=48 && poEvent.code<=57)
               )
            {
                lbValorValido=true;
            }
        }
    }

    if (lbValorValido == false)
    {
        poEvent.stop();
    }
}

function PasswordClicked(poEvent)
{    
    loNrCliente.removeClass('selected');
    loCurrentFocus.blur();
    loPassword.removeClass('selected');
    loCurrentFocus = loPassword;
    loCurrentFocus.addClass('selected');
    //loCurrentFocus.focus();
    loCurrentFocus.blur();
    MostrarRandomKeyboardBotLogin();
}

// nao permite a entrada de dados pelo teclado
function PasswordKeyDown(poEvent)
{
    if (poEvent != null)
    {
        poEvent.stop();
        /*
        if(poEvent.key=='tab')
        {
        	ClienteClicked(null);
        }*/
    }
}

function AbreJanelaModal(sUrl)
{
    showModalDialog(sUrl, '', 'dialogHeight: 400px; dialogWidth: 700px; edge: Raised; center: Yes; help: No; resizable: no; status: No;');
}



