﻿// File JScript: CT 29/10/2008
/*
Creato per gestire ENTER automatico su caselle di testo (textbox) e movimentazione da tastiera su DataGridView Scaffale (textbox e checkbox)
*/

//Variabili globali
var OggettoAttivo;   //identifica oggetto attivo nella pagina. Oggetto su cui è impostato il focus
var NumeroControlloPrecedente=0; //identifica oggetto precedentemente attivo, rispetto all'oggetto attualmente attivo
var ColoreOggettoSelezionato="red"; //Colore da utilizzare per background oggetti selezionati


/*
NomeOperazione=NomeOperazione che deve scattare su pressione di tasto ENTER
e=event
NomeCampoHiddenAppoggio=campo di appoggio per mettere operazione da fare
NomeForm=nome del form corrente
CodiceTastoPremuto= se diverso da -1 significa che devo fare focus su NomeControllo
NomeControllo=controllo su cui spostare il focus
*/
/*Alla pressione del tasto ENTER scateno il submit del form*/
function ScatenaPostBackSuENTER(NomeOperazione,e,NomeCampoHiddenAppoggio,NomeForm,CodiceTastoPremuto,NomeControllo)
{

    if (e.keyCode==13)
    {
        //imposto il nome del controllo su cui è stato premuto ENTER, servendomi di HiddenField
        document.getElementById(NomeCampoHiddenAppoggio).value = NomeOperazione;

        //lancio il submit del form attivo
        document.getElementById(NomeForm).submit();
    }
    
    if (CodiceTastoPremuto!=-1)
    {
        SpostaSuControllo(e, CodiceTastoPremuto, NomeControllo, NomeForm);
    }
}

function ScatenaPostBackSuENTERConRitardo(NomeOperazione, e, NomeCampoHiddenAppoggio, NomeForm, CodiceTastoPremuto, NomeControllo) {

    if (e.keyCode == 13) {
    
    
        setTimeout(function() {
        ScatenaPostBackSuENTERRitardato(NomeCampoHiddenAppoggio, NomeOperazione, NomeForm);
        }, 0);

    }

    if (CodiceTastoPremuto != -1) {
        SpostaSuControllo(e, CodiceTastoPremuto, NomeControllo, NomeForm);
    }
}




function ScatenaPostBackSuENTERRitardato(NomeCampoHiddenAppoggio, NomeOperazione, NomeForm)
{
    //imposto il nome del controllo su cui è stato premuto ENTER, servendomi di HiddenField
    document.getElementById(NomeCampoHiddenAppoggio).value = NomeOperazione;

    //lancio il submit del form attivo
    document.getElementById(NomeForm).submit();
 
}



/*Alla pressione del tasto "CodiceTastoPremuto" sposta il focus su "NomeControllo" */
/*
e=evento
CodiceTastoPremuto=keycode del tasto premuto
NomeControllo=Nome del controllo su cui redirigere il focus
*/
function SpostaSuControllo(e,CodiceTastoPremuto,NomeControllo)
{

    if (e.keyCode==CodiceTastoPremuto)
    {
       //cambio il focus
        document.getElementById(NomeControllo).focus(); 
        OggettoAttivo=NomeControllo;
        setTimeout ("SelezionaTestoAttivo()", 0);
    }
     
}

/*Sposta il focus su txt_qta inserimento quantità carrello*/
function SelezionaQtaInserimentoCarrello() {
    try {
        document.getElementById("ctl00_Content_inmezzo_txtqta").focus();
    }
    catch (e) {
        //'da non gestire. Meglio non dare segnalazioni, in quanto il funzionamento del portale non è "intaccato" in caso di errori a questo livello     
    }
    
}

/*Sposta il focus codice articolo*/
function SelezionaCodiceArticolo() {
 try {
    document.getElementById("ctl00_TBox_codiceprod").focus();
    document.getElementById("ctl00_TBox_codiceprod").select();
    }
      catch (e) {
        //'da non gestire. Meglio non dare segnalazioni, in quanto il funzionamento del portale non è "intaccato" in caso di errori a questo livello     
    }
}

/*Seleziona il testo nella text attiva*/
function SelezionaTestoAttivo()
{
 try {
    document.getElementById(OggettoAttivo).select();
    }
      catch (e) {
        //'da non gestire. Meglio non dare segnalazioni, in quanto il funzionamento del portale non è "intaccato" in caso di errori a questo livello     
    }
}

/*Seleziona il testo nella text attiva con IDConrollo*/
function SelezionaTestoAttivoConID()
{
    try {
        document.getElementById(OggettoAttivo.id).select();
    }
    catch (e) {
        //'da non gestire. Meglio non dare segnalazioni, in quanto il funzionamento del portale non è "intaccato" in caso di errori a questo livello     
    }
}



/*Sul focus IN e OUT imposto colore di sfondo dell'oggetto*/
/*
NomeOggetto=NomeOggetto da colorare
ColoreSfondo=Colore dello sfondo da impostare
SelezioneTesto= Indica, se fare anche una select del contenuto (0 o 1). Nel caso di textbox è utile
*/
function ImpostaOggettoSelezionato(NomeOggetto,ColoreSfondo,SelezioneTesto)
{
    
 
    document.getElementById(NomeOggetto.id).style.backgroundColor=ColoreSfondo;       
   
    if (SelezioneTesto==1) 
    {
        OggettoAttivo=NomeOggetto;
        setTimeout ("SelezionaTestoAttivoConID()", 0);
    }
    else
    {
        document.selection.empty();
    }
}

/*Movimento controlli nella griglia. Vanno da 03 a 12*/
/*TODO Andrebbe eventualmente parametrizzato meglio, senza usare nomi fissi e posizioni fisse.*/
/*
NomeOggetto=Nome dell'oggetto su cui il movimento si scatena
e=evento
ColoreSfondo=Colore dello sfondo da impostare
*/
function MovimentoInGriglia(NomeOggetto,e,ColoreSfondo)
{
    
    
    try
    {
    
    
   
    //Recupero il numero del controllo
    var NumeroControllo=NomeOggetto.id.substring(NomeOggetto.id.length-13,NomeOggetto.id.length-11);
      
    //Recupero parte del nome controllo
    var NomeControllo=NomeOggetto.id.substring(NomeOggetto.id.length-10,NomeOggetto.id.length-7);
    
                  
    if (NomeControllo=="Chk")
    {
    
        //SU
        if (e.keyCode==38)
        {
                        
            //dalla prima posizione passo all'ultima
            if (NumeroControllo=="03") return;
            
            NumeroControllo--;
            NumeroControlloPrecedente=NumeroControllo+2;
         
            //metto in doppia cifra NumeroControllo
            if ((NumeroControllo>=3)&&(NumeroControllo<=9)) NumeroControllo="0"+NumeroControllo;
            
            
            //dalla prima posizione passo all'ultima
             if (NumeroControlloPrecedente=="14") NumeroControlloPrecedente=3; else NumeroControlloPrecedente--;
             //metto in doppia cifra NumeroControlloPrecedente         
            if ((NumeroControlloPrecedente>=3)&&(NumeroControlloPrecedente<=9)) NumeroControlloPrecedente="0"+NumeroControlloPrecedente;
      
                                       
            
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_SpanChk").style.backgroundColor=ColoreSfondo;
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControlloPrecedente+"_SpanChk").style.backgroundColor="transparent";          
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_ChkGriglia").focus(); 
          
            
                
        }
        //GIU
        else if (e.keyCode==40)
        {
           //dalla prima posizione passo all'ultima
            if (NumeroControllo=="12") return;
            
            NumeroControllo++;
            NumeroControlloPrecedente=NumeroControllo;
         
            //metto in doppia cifra NumeroControllo      
            if ((NumeroControllo>=3)&&(NumeroControllo<=9)) NumeroControllo="0"+NumeroControllo;
            
                
            //dalla prima posizione passo all'ultima
             if (NumeroControlloPrecedente=="03") NumeroControlloPrecedente=12; else NumeroControlloPrecedente--;
             //metto in doppia cifra NumeroControlloPrecedente         
            if ((NumeroControlloPrecedente>=3)&&(NumeroControlloPrecedente<=9)) NumeroControlloPrecedente="0"+NumeroControlloPrecedente;
      
             //alert('NumeroControllo='+NumeroControllo);
            //alert('NumeroControlloPrecedente='+NumeroControlloPrecedente);
          
                    
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_SpanChk").style.backgroundColor=ColoreSfondo;
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControlloPrecedente+"_SpanChk").style.backgroundColor="transparent";          
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_ChkGriglia").focus(); 
      
            
             
        }
        //DX
        else if (e.keyCode==39)
        {            
             //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_SpanChk").style.backgroundColor="transparent";          

            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").focus();    
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").style.backgroundColor=ColoreSfondo;            
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").select();     
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").focus(); 
                    
        }
    }
    else if (NomeControllo=="Txt")
    {
  
  
        
        //SU
        if (e.keyCode==38)
        {
            //dalla prima posizione passo all'ultima
            if (NumeroControllo=="03") return;
            NumeroControllo--;
         
            //Lo metto in doppia cifra         
            if ((NumeroControllo>=3)&&(NumeroControllo<=9)) NumeroControllo="0"+NumeroControllo;
            
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").focus();     
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").style.backgroundColor=ColoreSfondo;            
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").select();     
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").focus(); 
    
        }
        //GIU
        else if (e.keyCode==40)
        {
    
           //dalla prima posizione passo all'ultima
            if (NumeroControllo=="12") return; 
            NumeroControllo++;
         
            //Lo metto in doppia cifra         
            if ((NumeroControllo>=3)&&(NumeroControllo<=9)) NumeroControllo="0"+NumeroControllo;
            
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").focus();                           
            
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").style.backgroundColor=ColoreSfondo;            
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").select();     
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_TxtGriglia").focus(); 
           
             
        }
        //SX
        else if (e.keyCode==37)
        {            
          
          NumeroControlloPrecedente=NumeroControllo;
           //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_ChkGriglia").focus();  
            //document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_SpanChk").style.backgroundColor=ColoreSfondo;
          //  document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControlloPrecedente+"_SpanChk").style.backgroundColor="transparent";          
            document.getElementById("ctl00_Content_inmezzo_GridScaffale_ctl"+NumeroControllo+"_ChkGriglia").focus(); 
                                     
        }  
    }
    
    
    }
    catch(e)
    {
        //'da non gestire. Meglio non dare segnalazioni, in quanto il funzionamento del portale non è "intaccato" in caso di errori a questo livello     
    }
    
  

   
}

/*Se premo ENTER Seleziono/Deseleziono Checkbox*/
/*
NomeOggetto=NomeOggetto checkbox
e=evento
ColoreSfondo=ColoreSfondo da passare alla funzione di movimentazione da tastiera
*/
function SelezioneDeselezionaCheckBox(NomeOggetto,e,ColoreSfondo)
{
   
    if (e.keyCode==13)
    {
        var elem=document.getElementById(NomeOggetto.id);
        if (elem.checked) elem.checked=false;  else elem.checked=true;
    }
    else
    {
       MovimentoInGriglia(NomeOggetto,e,ColoreSfondo); 
    }
}


