Имеется скрипт обратного отсчета...к сожалению работает только в хроме, и ни в каких других браузерах. Выдает наны. По логике напрашивается что где то идет деление на 0, но нет. Просьба помочь кто чем может)))
<script language="javascript">
//Скрипт обратного отсчета времени CountDown
var eventstr = "С новым годом!"; //Эта строка выводится по окончанию отсчета
var countdownid = document.getElementById("counterfont"); //ID элемента в который выводится время
var full = true;
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
function change(){
full = !full;
}
function CountDowndmn(yr, m, d){
cdyear = yr;
cdmonth = m;
cdday = d;
var today=new Date();
var todayy=today.getYear();
if (todayy < 1000)
todayy += 1900;
var todaym=today.getMonth();
var todayd=today.getDate();
var todayh=today.getHours();
var todaymin=today.getMinutes();
var todaysec=today.getSeconds();
var todayms=today.getMilliseconds();
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec+"."+todayms;
futurestring=montharray[m-1]+" "+d+", "+yr
dd=Date.parse(futurestring)-Date.parse(todaystring);
dday=Math.floor(dd/(60*60*1000*24)*1);
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
dfull=dd;
if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1){
countdownid.innerHTML=eventstr;
return
}
else {
var lastchar = ""+dsec; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
var secchar = "0"+dsec; secchar = secchar.substring(secchar.length-2,secchar.length-1);
var dsecstr = "секунд";
if (lastchar=="1") { dsecstr = "секунда"; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dsecstr = "секунды"; }
if (secchar == "1") { dsecstr = "секунд"; }
lastchar = ""+dmin; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
secchar = "0"+dmin; secchar = secchar.substring(secchar.length-2,secchar.length-1);
var dminstr = "минут";
if (lastchar=="1") { dminstr = "минута"; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dminstr = "минуты"; }
if (secchar == "1") { dminstr = "минут"; }
lastchar = ""+dhour; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
secchar = "0"+dhour; secchar = secchar.substring(secchar.length-2,secchar.length-1);
var dhourstr = "часов";
if (lastchar=="1") { dhourstr = "час"; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { dhourstr = "часа"; }
if (secchar == "1") { dhourstr = "часов"; }
lastchar = ""+dday; lastchar = lastchar.substring(lastchar.length-1,lastchar.length);
secchar = "0"+dday; secchar = secchar.substring(secchar.length-2,secchar.length-1);
var ddaystr = "дней";
if (lastchar=="1") { ddaystr = "день"; }
if ((lastchar=="2")||(lastchar=="3")||(lastchar=="4")) { ddaystr = "дня"; }
if (secchar == "1") { ddaystr = "дней"; }
strfull = ""+dday+ " " +ddaystr+" "+dhour+" "+dhourstr+" "+dmin+" "+dminstr+" и "+dsec+" "+dsecstr;
//strms = ""+dfull+" милисекунд";
var dfull_1 = dfull%1000;
var dfull_2 = Math.floor(dfull/1000)%1000;
var dfull_3 = Math.floor(dfull/1000000)%1000;
var dfull_4 = Math.floor(dfull/1000000000)%1000;
var dfull_5 = Math.floor(dfull/1000000000000)%1000;
strms = "";
var beg = false;
if (dfull_5 > 0) {
strms = dfull_5+"."+strms;
beg = true;
}
if (beg){
var str_4 = "" + dfull_4;
if (dfull_4<100) {str_4 = "0" + str_4}
strms += str_4 + ".";
}
else{
if (dfull_4 > 0) {
strms = dfull_4+"."+strms;
beg = true;
}
}
if (beg){
var str_3 = "" + dfull_3;
if (dfull_3<100) {str_3 = "0" + str_3}
strms += str_3 + ".";
}
else{
if (dfull_3 > 0) {
strms = dfull_3+"."+strms;
beg = true;
}
}
if (beg){
var str_2 = "" + dfull_2;
if (dfull_2<100) {str_2 = "0" + str_2}
strms += str_2 + ".";
}
else{
if (dfull_2 > 0) {
strms = dfull_2+"."+strms;
beg = true;
}
}
if (beg){
var str_1 = "" + dfull_1;
if (dfull_1<100) {str_1 = "0" + str_1}
strms += str_1 + " милисекунд";
}
else{
strms = dfull_2+" милисекунд";
beg = true;
}
if (full) {countdownid.innerHTML=""+strfull;}
else {countdownid.innerHTML=""+strms;}
}
setTimeout("CountDowndmn(cdyear,cdmonth,cdday)",1);
}
CountDowndmn(2012,1,1); //Дата отсчета
</script>