// Questa imposta i colori ...

function getEById(elem)
{
    var obj;
    
    // A seconda del browser ...
    if ( document.all )
    {
        // Explorer
        obj = document.all[elem];
    }
    else
    {
        obj = document.getElementById(elem);
    }
    
    return obj;
}






function setColor(id,col)
{
   var num = 0;
   var elem ;
   while ( num >= 0 )
   {
      elem = id + "_" + num;
      //alert ( "elem:"+elem);
      //alert ( "num:"+num+" typeof:"+document.getElementById(elem) );
      if ( getEById(elem) )
      {
         var obj = getEById(elem);
	     //alert("col:"+col); 
         obj.style.borderColor = "" + col;
         if ( obj.classname = "SubSez" )
         {
             obj.style.color = "" + col;
         }
         num++;
      }
      else
      {
         // fine ricerca
         num = -1;
      }
   }
}

function setBorder(id,dim)
{
   var num = 0;
   var elem ;
   while ( num >= 0 )
   {
      elem = id+"_"+num;
      //alert ( "elem:"+elem);
      //alert ( "num:"+num+" typeof:"+document.getElementById(elem) );
      if ( getEById(elem) )
      {
	     //alert("col:"+col); 
         getEById(elem).style.borderWidth = ""+dim+"px;";
         num++;
      }
      else
      {
         // fine ricerca
         num = -1;
      }
   }
}

// Questa imposta il timer e quale colore cambiare ...
function changeColor(id,col_ini,col_fin,time,incr,col_att)
{
   var red_ini = h2d( col_ini.substring(1,3) );
   var gre_ini = h2d( col_ini.substring(3,5) );
   var blu_ini = h2d( col_ini.substring(5,7) );
   var red_fin = h2d( col_fin.substring(1,3) );
   var gre_fin = h2d( col_fin.substring(3,5) );
   var blu_fin = h2d( col_fin.substring(5,7) );
   
   var red_att;
   var gre_att;
   var blu_att;
   
   if ( col_att )
   {
       red_att = h2d( col_att.substring(1,3) );
       gre_att = h2d( col_att.substring(3,5) );
       blu_att = h2d( col_att.substring(5,7) );
   }
   else
   {
       red_att = red_ini;
       gre_att = gre_ini;
       blu_att = blu_ini;
   }    
   
   
   
   var num_red = Math.floor ( ( red_fin - red_ini ) / incr );
   var num_gre = Math.floor ( ( gre_fin - gre_ini ) / incr );
   var num_blu = Math.floor ( ( blu_fin - blu_ini ) / incr );
   
//   alert( "red_ini:"+red_ini+"\n"
//         +"gre_ini:"+gre_ini+"\n"
//         +"blu_ini:"+blu_ini+"\n"
//         +"red_fin:"+red_fin+"\n"
//         +"gre_fin:"+gre_fin+"\n"
//         +"blu_fin:"+blu_fin+"\n"
//         +"\n"
//         +"red_att:"+red_att+"\n"
//         +"gre_att:"+gre_att+"\n"
//         +"blu_att:"+blu_att+"\n"
//         +"\n"
//         +"\n"
//         +"num_red:"+num_red+"\n"
//         +"num_gre:"+num_gre+"\n"
//         +"num_blu:"+num_blu+"\n"
//         );
 
  
//    // NOTA : num_red , num_gre , num_blu possono essere positivo o negativo 
//    
//    if      (   ( num_red > 0 &&  red_att < red_fin )
//             || ( num_red < 0 &&  red_att > red_fin )
//             )
//    {
//        red_att += num_red;
//    }
//    else if (    ( num_gre > 0 &&  gre_att < gre_fin )
//              || ( num_gre < 0 &&  gre_att > gre_fin )
//             )
//    {
//        gre_att += num_gre;
//    }
//    else if (    ( num_blu > 0 &&  blu_att < blu_fin )
//              || ( num_blu < 0 &&  blu_att > blu_fin )
//             )
//    {
//        blu_att += num_blu;
//    }
//    else
//    {
//       // Se sei qui allora occorre tornare indietro ...
//       var tmp = col_fin;
//       col_fin = col_ini;
//       col_ini = tmp;
//       //alert( "torno indietro !");
//    }
   // NOTA : num_red , num_gre , num_blu possono essere positivo o negativo 
   var red_end = 0;  // se a 1 allora sono arrivato !!!
   var blu_end = 0;  // se a 1 allora sono arrivato !!!
   var gre_end = 0;  // se a 1 allora sono arrivato !!!
   
   if (   ( num_red > 0 &&  red_att < red_fin )
       || ( num_red < 0 &&  red_att > red_fin )
      )
   {
       red_att += num_red;
   }
   else
   {
       red_end = 1;
   }
   
   if (    ( num_gre > 0 &&  gre_att < gre_fin )
        || ( num_gre < 0 &&  gre_att > gre_fin )
       )
   {
       gre_att += num_gre;
   }
   else
   {
       gre_end = 1;
   }

   if (    ( num_blu > 0 &&  blu_att < blu_fin )
        || ( num_blu < 0 &&  blu_att > blu_fin )
       )
   {
       blu_att += num_blu;
   }
   else
   {
       blu_end = 1;
   }
   
   if ( red_end == 1 && gre_end == 1 && blu_end == 1 )
   {
      // Se sei qui allora occorre tornare indietro ...
      var tmp = col_fin;
      col_fin = col_ini;
      col_ini = tmp;
      //alert( "torno indietro !");
   }
   
   var col_new = "#"+d2h(red_att)+d2h(gre_att)+d2h(blu_att);
   //alert("time:"+time);
   setColor(id,col_new);           
   
   //alert('changeColor("'+id+'","'+col_ini+'","'+col_fin+'","'+time+'","'+incr+'","'+col_new+'");');
   
   setTimeout('changeColor("'+id+'","'+col_ini+'","'+col_fin+'","'+time+'","'+incr+'","'+col_new+'");' , time );
   // setTimeout('changeColor', time , id , col_ini , col_fin , time , incr , col_new );
}

function d2h(d) 
{
   var hD="0123456789ABCDEF";
   var ret;
   
   if      (d < 0   || d == 0 )   {  ret = "00";   }   
   else if (d > 255 || d == 255 ) {  ret = "ff";   }
   else
   {  var col1 = Math.floor( d / 16 );
      var col2 = d%16;
      
      ret = ""+hD.substr(col1,1)+hD.substr(col2,1); 
   }

   //alert ("d:"+d+" ret:"+ret );
   return ret;
}

function h2d(h) {  return parseInt(h,16);  } 

