var winter_session_start_day = 22; //Декабря (первый день зимней сессии)
var winter_session_end_day   = 24; //Января  (последний день зимней сессии)
var summer_session_start_day = 22; //Мая     (первый день летней сессии)
var summer_session_end_day   = 24; //Июня    (последний день летней сессии)
var to_say_when_session_starts
    = "Ура! Идет сессия...";                //Надпись во время сессии

var autumn_term_start_day    = 1;  //Сентября (первый день весеннего семестра)
var spring_term_start_day    = 7;  //Февраля  (первый день осеннего семестра)
var                        N = 14; //Сколько дней показывать надпись
var to_say_when_term_starts
    = "У Р А ! ! ! <br> Начались занятия!"; //Надпись в первые N дней учебы



function calculate_days_before_session()
  {
    var winter_session_date = new Date();
    var summer_session_date = new Date();
    winter_session_date.setMonth(11, winter_session_start_day); // in December
    summer_session_date.setMonth(4,  summer_session_start_day); // in May
       
    var today = new Date();
    var current_month = today.getMonth() + 1;
    
    var days_left = 0;  //days left till session starts
      
 // Calculation how many days left till session starts

    if ( (current_month == 1 && today.getDate() <= winter_session_end_day) || 
         (current_month == 6 && today.getDate() <= summer_session_end_day) )
      {
        days_left = 0;  
      } 
    else 
      if (current_month < 6)  //till summer session
        {
          days_left = Math.round( (summer_session_date.getTime() - today.getTime()) / (1000 * 3600 * 24) );
        } 
      else                    //till winter session
        {
          days_left = Math.round( (winter_session_date.getTime() - today.getTime()) / (1000 * 3600 * 24) );
        }
        
    if (days_left < 0) //it's already started :(
      {           
        days_left = 0;
      }

    return days_left;          
  }



function calculate_days_before_new_term()
  {
    var winter_date = new Date();
    var summer_date = new Date();
    winter_date.setMonth(1, spring_term_start_day); // in February
    summer_date.setMonth(8, autumn_term_start_day); // in September
   
    var today = new Date();
    var current_month = today.getMonth() + 1;
    
    var days_left = 0;  //days left till studies
      
  
 // Calculation how many days left till next term starts

    if (current_month <= 2)  //till winter studies
      {
        days_left = Math.round( (winter_date.getTime() - today.getTime()) / (1000 * 3600 * 24) );
      }
    else                     //till summer studies
       {
          days_left = Math.round( (summer_date.getTime() - today.getTime()) / (1000 * 3600 * 24) );
       } 
    
    if (days_left < 0)
      {      
           //tollerance level (in days) to show the "new term" caption
        if (-days_left < N) 
          { 
            days_left = 0; 
          }         
      }

    return days_left;          
  }



function print_days_left_before_session()
  {
    var days_left_till_session = calculate_days_before_session();
    var days_left_till_new_term = calculate_days_before_new_term();
    var isTermTime = 1;
    var days_left = days_left_till_session;     
     
    if ( days_left_till_new_term < 0 || days_left_till_session < days_left_till_new_term )
      {
        days_left = days_left_till_session;
        isTermTime = 1;
      }
    else
      {
        days_left = days_left_till_new_term;
        isTermTime = 0;
      }  
    
    var last1 = days_left - Math.round(days_left/10)*10;
    var last2 = Math.round( (days_left - Math.round(days_left/100)*100) / 10 );
    var word_days = "";
    var word_left = "осталось ";
    
    if (last1 == 1) 
      {
        if (last2 == 1) 
          { 
            word_days = " дней";
          } 
        else
          {
            word_days = " день";
            word_left = "остался ";
          }              
      } 
    else 
      if (last1 == 2 || last1 == 3 || last1 == 4) 
        {
          if (last2 == 1)
            {
              word_days = " дней";
            } 
          else 
            {
              word_days = " дня";
            }
        }
      else 
        {
          word_days = " дней";
        }

    
   if (days_left != 0)
      {
        var days_color = (days_left <= 15) ? "Red" : ( (days_left <= 30)  ? "Gold" : "ForestGreen" );
        if (isTermTime)
          {
            self.document.write('<strong id="days">' + "До начала сессии " + word_left +
                               days_left + word_days + "</strong>");
          }
        else
          {
            self.document.write('<strong id="days">' + "До начала занятий " + word_left +
                               days_left + word_days + "</strong>");
          }
        var daysObj = self.document.getElementById("days");
        daysObj.style.color = days_color;
      }
    else
      {
        if (isTermTime)
          {
            self.document.write('<strong style="color:Gold">' + to_say_when_session_starts + "</strong>");
          }
        else
          {
            self.document.write('<strong style="color:Gold">' + to_say_when_term_starts + "</strong>");
          }
      }

  }
           