Code: Select all
<script type="text/javascript">
function myCounter(o, timeArray){
var counter = document.getElementById(o);
if(!counter) {
return;
}
function mksec(day, h, m, s){ return day*24*60*60+h*60*60+m*60+s; }
function toTimeString(sec, showZero){
var d=Math.floor(sec/(60*60*24))
var h=Math.floor(sec/(60*60)%24);
var m=Math.floor((sec/60) % 60);
var s=sec % 60;
var ret=d+'days '+h+'hrs '+m+'min '+s+'sec';
if(showZero){
return ret;
}
else if(d==0 && h==0 && m==0){
return s+'sec';
}else if(d==0){
return h+'hrs '+m+'min '+s+'sec';
}else if(d==0 && h==0){
return m+'min '+s+'sec';
}else {
return ret;
}
}
var secArray = [];
var dayNow = new Date().getDay();
for(var i=0;i<timeArray.length;i++){
var day=timeArray[i][0];
if(day==-1){
day=dayNow;
}
secArray.push({
day: timeArray[i][0],sec: mksec(day, timeArray[i][1], timeArray[i][2], timeArray[i][3]), msg: timeArray[i][4] || false, showZero: timeArray[i][5] || false });}
secArray.sort(function(a,b){ return a.sec-b.sec;});
// timer code - will be called around each second (~1000 ms)
function updateCounter(){
// get current UTC time in seconds
var d=new Date();
var secNow = mksec(d.getDay(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds());
// find next event
var nextIndex=0;
for(var i=0;i<secArray.length; i++){
var diff = secArray[i].sec-secNow;
if(diff>0){
nextIndex=i;
break;
}
}
var diff=secArray[nextIndex].sec-secNow;
var prevDiff=diff;
if(diff<0){
var dayDiff = 6-secArray[nextIndex].day;
if(secArray[nextIndex].day == -1){
dayDiff=0;
}
diff=(dayDiff+1)*24*60*60-Math.abs(diff); }
var str='';
// get message if there is any set
if(secArray[nextIndex].msg){ str=secArray[nextIndex].msg; }
var timeString = toTimeString(diff, secArray[nextIndex].showZero);
if(str.match('@{counter}')!=null){
str=str.replace(/@{counter}/, timeString);
}else if(str.indexOf(' ')==0){ // message starts with space str=timeString+str; }else{
// no specific hint where to put counter, so display it after message
str+=timeString; }
counter.innerHTML=str; }
setInterval(updateCounter, 1000);
};
myCounter('counter', [ [0,16, 0, 0, '<b>Results will be display in :<b> @{counter}', false] ]);
</script>
Thanks