// ---------------------------------------------
// copyright 2008 - Jet library               --  
// Функции для анимации                       --  
// ---------------------------------------------

// Переменные для работы функций
// ----------------------------------
// Функции для сценариев
var jet_move_scenario=new Array();

// Идентификатор измяемого объекта
var jet_move_id=new Array();

// Текущая величина (значение)
var jet_move_value_current=new Array();

// Новая величина (значение)
var jet_move_value_new=new Array();

// Имя изменяемого свойства
var jet_move_property=new Array();

// Размерность изменяемого свойства
var jet_move_value_dimension=new Array();

// Флаг окончения изменения
var jet_move_end_flag=new Array();

//  Задержка в изменении
var jet_move_current_flag=0;

//  Счетчик обработанных функций
var jet_move_counter=0;

// Объект для таймаута
var jet_move_timeout;

//  Задержка в изменении
var jet_move_delay=15;

// Удаление сценария
function Jet_DeleteScenario()
{
   jet_move_counter=0;
   Jet_CleanArray(jet_move_scenario);
   Jet_CleanArray(jet_move_id);  
   Jet_CleanArray(jet_move_value_current);   
   Jet_CleanArray(jet_move_value_new);   
   Jet_CleanArray(jet_move_property);   
   Jet_CleanArray(jet_move_value_dimension);     
   Jet_CleanArray(jet_move_end_flag);  
}

// Проигрывание сценария
function Jet_PlayScenario()
{
   //alert (move_counter);
   jet_move_flag=0;
   // Загрузка сцены...
   if(jet_move_counter<jet_move_scenario.length)
   {
     eval(jet_move_scenario[jet_move_counter])
     Jet_PlayScene();
   }
}

// Изменение параметров объекта
function Jet_PlayScene() 
{
  // Флаг окончения всех изменений
  jet_move_flag=1;
  for (i=0; i<jet_move_id.length; i++)
  {
        // Проверка, закончено движение или нет
        if (jet_move_value_current[i]==jet_move_value_new[i])
        {
              jet_move_end_flag[i]=1;
        }
        else
        {
              // Величина смещения
              //jet_delta=Math.round(0.12*Math.pow(Math.abs((jet_move_value_new[i]-jet_move_value_current[i])),0.9));
              jet_delta=Math.round(0.25*Math.pow(Math.abs((jet_move_value_new[i]-jet_move_value_current[i])),0.9));

              if (jet_delta<1)
              {
                  jet_delta=1;
              }
              if ((jet_move_value_new[i]-jet_move_value_current[i])<0)
              {
                  jet_delta=-jet_delta;
              }
              
              // Присваивание значения
              jet_move_value_current[i]=(jet_move_value_current[i]*1+jet_delta);

              // Проверка свойства на специфичность (opacity)
              var test_property = /opacity/;
              var test_result = test_property.test(jet_move_property[i]) ? "1" : "0";
              if (test_result==1)
              {
                  Jet_SetElementOpacity(jet_move_id[i], jet_move_value_current[i]);
              }
              else
              {
                  Jet_SetElementStyleProperty(jet_move_id[i], jet_move_property[i], jet_move_value_current[i], jet_move_value_dimension[i]);
              }
        }
  }
  // Проверка, закончены ли все перемещения
  for (i=0; i<jet_move_id.length; i++)
  { 
      jet_move_flag=jet_move_flag*jet_move_end_flag[i];
  } 
  // Остановка цилка
  if (jet_move_flag==1)
  {
    clearTimeout(jet_move_timeout);
    jet_move_counter++;
    Jet_PlayScenario();
  }
  else
  {
    jet_move_timeout=setTimeout('Jet_PlayScene()', jet_move_delay);
  }
}