I am trying to create simple webpage that would show how much time is left till main holidays. I finally got the code to properly calculate the amount of days, but hours, minutes and seconds is still off! I cant understand what I am doing wrong. Please help. Also, later on, I want to add some sort of an interval method that would make the time left decrease every second and dynamically refresh. Any ideas how that can be accomplished?

This is my html file:
Code:
<!DOCTYPE html>
<html>

   <head>
   <!--
      

      

      Filename:         events.htm
      Supporting files: banner2.png, dates.js,  
                        modernizr-1.5.js, styles.css

   -->

      <meta charset="UTF-8" />
      <title>Upcoming Holidays</title>
      <script src="modernizr-1.5.js" type="text/javascript" ></script>
      <link href="styles.css" rel="stylesheet" type="text/css" />
	  <script src="dates.js" type="text/javascript" ></script>
	  
	  
	  
	  <script type="text/javascript">     //because months is array month must be one less. (start from zero)
		  function showCountdown() {
		  var today = new Date();
		  var date1 = new Date(); //thanksgiving 
		  date1.setFullYear(2013,10,28,24,00,00,00); 
		  alert(date1);
		  var date2 = new Date(2013,11,25,24,00,00); //christmas
		  
		  var date3 = new Date(2013,11,31,24); //new year
		  var date4 = new Date(2014,6,4,24); //independance day
		  var date5 = new Date(2014,8,1,24,00,00); //labor day
		  
		  document.eventform.thisDay.value = showDateTime(today);
		  document.eventform.count1.value = changeYear(today,date1);
		  document.eventform.count2.value = changeYear(today,date2);
		  document.eventform.count3.value = changeYear(today,date3);
		  document.eventform.count4.value = changeYear(today,date4);
		  document.eventform.count5.value = changeYear(today,date5);
		  
		  document.eventform.count1.value = countdown(today,date1);
		  document.eventform.count2.value = countdown(today,date2);
		  document.eventform.count3.value = countdown(today,date3);
		  document.eventform.count4.value = countdown(today,date4);
		  document.eventform.count5.value = countdown(today,date5);
		  
		  
		  
		  
		
		  
		  
		  }
	  
	  
	  </script>
   </head>

   <body onload="showCountdown()">
		
      <form name="eventform" id="eventform" action="">

      <header>
         
         <img src="banner2.png" alt="" />
      </header>

      <nav class="horizontal">
         <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">Helpful Links</a></li>
            <li><a href="#">Recommended Books</a></li>
            <li><a href="#">About Us</a></li>
			<li><a href="#">Contact Info</a></li>
           
         </ul>
      </nav>

      <nav class="vertical">
         <h1>Links</h1>
         <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">Guessing Game</a></li>
            <li><a href="#">Tic-Tac-Toe</a></li>
            <li><a href="#">Music</a></li>
            <li><a href="#">Tech Quiz</a></li>
            <li><a href="#">Coming Holidays</a></li>
           
            
         </ul>
      </nav>

      <section id="main">
         <h1>Countdown to Upcoming Holidays</h1>

         <p>
            Current Date and Time 
           <input name="thisDay" id="thisDay" readonly="readonly" size="30" />
         </p>
         <table>
            <thead>
            <tr>
               <th class="colhead">Event</th>
               <th class="colhead">Starting Time</th>
               <th class="colhead">Countdown to Event</th>
            </tr>
            </thead>
            <tbody>
            <tr>
               <td>
                  Thanksgiving
               </td>
               <td>
                  Nov 28 at 12:00 a.m.
               </td>
               <td>
                  <input name="count1" id="count1" size="33" />
               </td>
            </tr>
            <tr>
               <td>
                  Christmas
               </td>
               <td>
                  Dec 25 at 12:00 a.m.
               </td>
               <td>
                  <input name="count2" id="count2" size="33" />
               </td>
            </tr>
            <tr>
               <td>
                  New Year
               </td>
               <td>
                  Dec 31 at 12:00 a.m.
               </td>
               <td>
                  <input name="count3" id="count3" size="33" />
               </td>
            </tr>
            <tr>
               <td>
                  Independance Day
               </td>
               <td>
                  July 4 at 12:00 a.m.
               </td>
               <td>
                  <input name="count4" id="count4" size="33" />
               </td>
            </tr>
            <tr>
               <td>
                  Labor Day
               </td>
               <td>
                  Sep 1 at 12:00 a.m.
               </td>
               <td>
                  <input name="count5" id="count5" size="33" />
               </td>
            </tr>
            
            </tbody>
         </table>

      </section>


      <footer>
         <address>
            Major Holidays in United States
         </address>
      </footer>

      </form>

   </body>

</html>

And this is the javascript code:

Code:
/*
     

   Function List:
   showDateTime(time)
      Returns the date in a text string formatted as:
      mm/dd/yyyy at hh:mm:ss am

   changeYear(today, holiday)
      Changes the year value of the holiday object to point to the
      next year if it has already occurred in the present year

   countdown(stop, start)
      Displays the time between the stop and start date objects in the
      text format:
      dd days, hh hrs, mm mins, ss secs
*/

function showDateTime(time) {
   date = time.getDate();
   month = time.getMonth()+1;
   year = time.getFullYear();

   second = time.getSeconds();
   minute = time.getMinutes();
   hour = time.getHours();

   ampm = (hour < 12) ? " a.m." : " p.m.";
   hour = (hour > 12) ? hour - 12 : hour;
   hour = (hour == 0) ? 12 : hour;

   minute = minute < 10 ? "0"+minute : minute;
   second = second < 10 ? "0"+second : second;

   return month + "/" + date + "/" + year + " at " + hour + ":" + minute + ":" + second + ampm;
}


function changeYear(today,holiday)  {
	var year = today.getFullYear();
	holiday.setFullYear(year);
		if(holiday < today) {
		year = year + 1;
		holiday.setFullYear(year);
		}
		
	return year;
}




function countdown(start,stop) {     


var time = stop - start;


// display days rounded to the next lowest integer
var days = (time) / (1000*60*60*24);
days = Math.floor(days);

// calculate the hours left in the current day
var hours = days * 24;


// calculate the minutes left in the current hour
var minutes = (Math.floor(hours))*60;
// display minutes rounded to the next lowest integer

// calculate the seconds left in the current minute
var seconds = (Math.floor(minutes))*60;
// display seconds rounded to the next lowest integer
seconds = Math.floor(seconds);


return days + " days " +  hours + " hours "+ minutes + " minutes "+ seconds + " seconds ";
              
            


}