function $$(id) {
   return document.getElementById(id);
}

function redirect(url) {
   document.location = url;
}

function sform(show, id, keyword) {
    el = document.getElementById(id);
    if (show == 1) {
        if (el.value == keyword) {       
            el.value = '';
        }
    } else {
        if (el.value == '') {
            el.value = keyword;
        }
    }
}

function toggle(id) {
    if ('none' == $$(id).style.display || '' == $$(id).style.display) {
        $$(id).style.display = 'block';
    } else {
        $$(id).style.display = 'none';
    }
}

function loading(id) {
    $$(id).innerHTML = '{/literal}<img src={$URL}tpl/default/img/l.gif height=32 width=32 alt=Loading align=absmiddle /> <span style=\'color: brown;\'>Please wait, this operation can take several minutes.</span>{literal}';
}

/*
 * В русском языке существует три формы употребления существительного
 * с числительным: единственная, двойственная и множественная.
 
 * Функция "declension()" склоняет заданое число в соответствии с этими правилами.
 
 * Первый параметр (number) - само число.
 * Второй параметр (single) - единственная форма.
 * Третий параметр (double) - двойственная форма.
 * Четвёртый параметр (multiple) - множественная форма. 
  
 * Для лёгкости задания форм нужно воспользоваться мнемоническим правилом:
 * пишем сначала слово для одного предмета, потом для двух и для пяти.
 
 * Потренируемся на кошках!
 * Одна - КОШКА. Две - КОШКИ. Пять - КОШЕК.
 * catsLabel = declension(1, "Кошка", "Кошки", "Кошек"); 
 */

function declension(number, single, double, multiple)
{
    n  = number % 100;
    n1 = n % 10;
    
    if (n > 10 && n < 20) return multiple;
    if (n1 > 1 && n1 < 5) return double;
    if (n1 == 1) return single;
    return multiple;
} 

/*
 * Функция "getTime()"
 * countdown - дата вида ММ/ДД/ГГГГ.
 */

function getTime() 
{
    var countdownElem;
    
    // Миллисекунды переводим в дни, часы, минуты и секунды.
    var ONE_DAY = 1000 * 60 * 60 * 24;
    var ONE_HOUR = 1000 * 60 * 60;
    var ONE_MINUTE = 1000 * 60;
    var ONE_SECOND = 1000;
    
    var now = new Date();
    var ed  = new Date("1/1/2012");
    // Дата не должна быть из прошлого
    if ( ed < now )
    {
        try
        {
            countdownElem = document.getElementById('countdown');
            if (countdownElem)
            {
                countdownElem.innerHTML = 'Поздравления от Деда Мороза оформленные после 26 декабря мы не сможем доставить до Нового Года. Но не стоит расстраиваться! Ведь письмо-сюрприз от Деда Мороза во время Новогодних каникул - это тоже очень, очень здорово!';
            }
        }
        catch (e)
        {
            // Экспешен, который сработает когда на странице не окажется элемента с id="countdown".
        }
        finally
        {
            countdownElem = null;
        }
        return true;
    }
    
    var days = Math.floor( (ed-now) / ONE_DAY );   
    var hours = Math.floor( ((ed-now) - (days * ONE_DAY)) / ONE_HOUR );
    var minutes = Math.floor( ((ed-now) - (days * ONE_DAY) - (hours * ONE_HOUR)) / ONE_MINUTE );
    var seconds = Math.floor( ((ed-now) - (days * ONE_DAY) - (hours * ONE_HOUR) - (minutes * ONE_MINUTE)) / ONE_SECOND );

    var daysLabel    = "&nbsp;" + declension(days, "день", "дня", "дней");
    var hoursLabel   = "&nbsp;" + declension(hours, "час", "часа", "часов");
    var minutesLabel = "&nbsp;" + declension(minutes, "минута", "минуты", "минут");
    var secondsLabel = "&nbsp;" + declension(seconds, "секунда", "секунды", "секунд");
    
    var countdownString = "ДО НОВОГО ГОДА осталось только ";
    if (days > 0)
    {
        countdownString += '<span id="da">' + days + daysLabel + '</span>';
    }
    if (hours > 0)
    {
        countdownString += ', <span id="hr">' + hours + hoursLabel + '</span>';
    }
    if (minutes > 0)
    {
        countdownString += ', <span id="mi">' + minutes + minutesLabel + '</span>';
        prior = true;
    }
    if (minutes > 0 && seconds > 0)
    {
        countdownString += ' и <span id="sec">' + seconds + secondsLabel + '</span>';
    }
    countdownString += ' .';
    

    try {
        countdownElem = document.getElementById('countdown');
        if (countdownElem)
        {
            countdownElem.innerHTML = countdownString;
        }
    }
    catch (e)
    {
        window.alert(e);
        // Экспешен, который сработает когда на странице не окажется элемента с id="countdown".
    }
    finally
    {
        countdownElem = null;
    }

    // Запускаем себя спустя секунду.
    newtime = window.setTimeout("getTime();", 1000);
}
