Может всё таки стоит чуть переделать скрипт.
Код:
function nytime () {
today = new Date();
//BigDay = new Date("January 01, 2012");
// Можно использовать более унивессальную конструкцию
// IE и FF,GH, O по разному отрабатывают getYear()
if (today.getMonth() != 0){ // счёт до, во всех месяцах кроме января
BigDay= new Date(today.getYear()>1900?(today.getYear()+1):(today.getYear()+1901),0,1);
} else {
BigDay= new Date(today.getYear()>1900?(today.getYear()):(today.getYear()+1900),0,1);
}
//**********************************************
msPerDay = 24 * 60 * 60 * 1000;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
e_minsLeft = (e_hrsLeft - hrsLeft)*60;
minsLeft = Math.floor(e_minsLeft);
secLeft = Math.floor((e_minsLeft - minsLeft)*60);
// if (daysLeft == 1, 21, 31) daytxt = ("день"), istxtd = ("остался");
// if ((daysLeft>1 && daysLeft<5) || (daysLeft>21 && daysLeft<25)) daytxt = ("дня"), istxtd = ("осталось");
// if ((daysLeft>=5 && daysLeft<21) || (daysLeft>=25 && daysLeft<31)) daytxt = ("дней"), istxtd = ("осталось");
// if ((daysLeft>=35 && daysLeft<41) || (daysLeft>=55 && daysLeft<61)) daytxt = ("дней"), istxtd = ("осталось");
// if ((daysLeft>61)) daytxt = ("дней"), istxtd = ("осталось");
// if (hrsLeft == 1, 21) hrstxt = ("час"), istxth = ("остался");
// if ((hrsLeft>1 && hrsLeft<5) || (hrsLeft>21 && hrsLeft<25)) hrstxt = ("часа"), istxth = ("осталось");
// if ((hrsLeft == 0) || (hrsLeft>=5 && hrsLeft<21)) hrstxt = ("часов"), istxth = ("осталось");
// if (minsLeft == 1, 21, 31, 41, 51) mintxt = ("минута"), istxtm = ("осталась");
// if ((minsLeft>1 && minsLeft<5) || (minsLeft>21 && minsLeft<25) || (minsLeft>31 && minsLeft<35) || (minsLeft>41 && minsLeft<45) || (minsLeft>51 && minsLeft<55)) mintxt = ("минуты"), istxtm = ("осталось");
// if ((minsLeft == 0) || (minsLeft>=5 && minsLeft<21) || (minsLeft>=25 && minsLeft<31) || (minsLeft>=35 && minsLeft<41) || (minsLeft>=45 && minsLeft<51) || (minsLeft>=55 && minsLeft<60)) mintxt = ("минут"), istxtm = ("осталось");
// if (secLeft == 1, 21, 31, 41, 51) sectxt = ("секунда");
// if ((secLeft>1 && secLeft<5) || (secLeft>21 && secLeft<25) || (secLeft>31 && secLeft<35) || (secLeft>41 && secLeft<45) || (secLeft>51 && secLeft<55)) sectxt = ("секунды");
// if ((secLeft == 0) || (secLeft>=5 && secLeft<21) || (secLeft>=25 && secLeft<31) || (secLeft>=35 && secLeft<41) || (secLeft>=45 && secLeft<51) || (secLeft>=55 && secLeft<60)) sectxt = ("секунд");
//*************************************
var ArrayO = ["остался", "осталось", "осталось"];
var ArrayDay = ["день", "дня", "дней"];
var ArrayHour = ["час", "часа", "часов"];
var ArrayMin = ["минута", "минуты", "минут"];
var ArraySec = ["секунда", "секунды", "секунд"];
istxtd = ArrayO[GetNumberStr(daysLeft)];
// в принципе istxth не очень и нужна в этом варианте
istxth = istxtd;
daytxt = ArrayDay[GetNumberStr(daysLeft)];
hrstxt = ArrayHour[GetNumberStr(hrsLeft)];
mintxt = ArrayMin[GetNumberStr(minsLeft)];
sectxt = ArraySec[GetNumberStr(secLeft)];
//***************************************
if (daysLeft>0) {
document.getElementById("countdown").innerHTML="До Нового Года "+istxtd+" <b>"+daysLeft+"</b> "+daytxt+", <b>"+hrsLeft+"</b> "+hrstxt+", <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+""
setTimeout('nytime()',1000)
}
if (daysLeft==0){
//минуты в стандарты не укладываются :(
if (minsLeft == 1, 21, 31, 41, 51){ istxtm = ("осталась"); }
else{ istxtm = ("осталось"); }
if (hrsLeft!=0) {
document.getElementById("countdown").innerHTML="До Нового Года "+istxth+" <b>"+hrsLeft+"</b> "+hrstxt+" и <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"";
setTimeout("nytime()",1000);
} else {
if (minsLeft==0) document.write( "До Нового Года остались считанные секунды!");
if (minsLeft==1) document.write( "До Нового Года осталась всего лишь минута!");
if (minsLeft!=0 && minsLeft!=1) {
time=("До Нового Года "+istxtm+" всего <b>"+minsLeft+"</b> "+mintxt+" и <b>"+secLeft+"</b> "+sectxt+"");
document.getElementById("countdown").innerHTML=time;
}
setTimeout("nytime()",1000);
}
}
if (daysLeft<0) {
document.getElementById("till").innerHTML = "Поздравляем с новым "+ BigDay.getYear() +"-м годом!";
};
}
//Выбор окончания текстового поля
function GetNumberStr(N){
if (N == 0) return 2;
if (N % 10 == 1 && N != 11 ) { return 0; };
if (N % 10 == 2 || N % 10 == 3 || N % 10 == 4 ) {
if (N == 12 || N == 13 || N == 14) {
return 2;
}else return 1;
}
return 2;
};
//*******************************************************
function l() {
//fall();
nytime();
}
window.onload=l