/*
 * @file
 * Javascript-side for countdown ads
 */

Drupal.behaviors.ad_countdown = function(context) {
  if (Drupal.settings.ad_countdown) {
    // Processing each ad_countdown element on page, updating the 
    // countdown clock and creating an updater interval timer
    jQuery.each(Drupal.settings.ad_countdown, function() {
      $('#ad-' + this.aid)
        .data('countdown_ts', this.countdown_ts)
        .each(updateCountdown)
        .everyTime(1000, updateCountdown);
    });
  }
}

function updateCountdown() {
  var countdown = $(this).data('countdown_ts');
  if (countdown) {
    // Receiving timestamp in PHP Unix format, multiply it by 1000 (adding milliseconds) to make it Javascript friendly
    var till  = new Date(countdown * 1000);
    var now   = new Date();
    var ms    = Math.floor(till - now.valueOf());
    
    var oneSecond = 1000;
    var oneMinute = 60 * oneSecond;
    var oneHour = oneMinute * 60;
    var oneDay = oneHour * 24;
    
    if (ms > 0) {
      var days = Math.floor(ms / oneDay);
      ms -= oneDay * days;
      
      var hrs = Math.floor(ms / oneHour);
      ms -= oneHour * hrs;
      
      var mins = Math.floor(ms / oneMinute);
      ms -= oneMinute * mins;
      
      secs = Math.floor(ms / oneSecond);
      
      // Adding leading zeros to digits less than 10
      days = (days < 10) ? "0" + days : days;
      hrs = (hrs < 10) ? "0" + hrs : hrs;
      mins = (mins < 10) ? "0" + mins : mins;
      secs = (secs < 10) ? "0" + secs : secs;
      
      // Updating contents of countdown field
      $(this).find('.countdown').html( '<span>' + days + '<span class="colon">:</span>' + hrs + '<span class="colon">:</span>' + mins + '<span class="colon">:</span>' + secs + '</span> ' + Drupal.t('')  + '<br />' + '<span class="lables"><span class="days">Days</span><span class="hours">Hours</span><span class="mins">Mins</span><span class="sec">Sec</span></span>' );
    }  
  }
}
