diff --git a/advance_clock.admin.inc b/advance_clock.admin.inc
index 0bb51c9..0adf2c8 100755
--- a/advance_clock.admin.inc
+++ b/advance_clock.admin.inc
@@ -15,10 +15,10 @@
 function advance_clock_admin_settings() {
   $form = array();
   $form['advance_clock_count'] = array(
-  	'#type' => 'select',
+    '#type' => 'select',
     '#title' => t('Number of allowed clock per user'),
     '#options' => array(
-	    1 => t('1'),
+      1 => t('1'),
       2 => t('2'),
       3 => t('3'),
       4 => t('4'),
@@ -34,21 +34,21 @@ function advance_clock_admin_settings() {
     '#type' => 'checkbox',
     '#title' => t('Show Seconds'),
     '#default_value' => variable_get('advance_clock_show_secs', TRUE),
-    '#description' => t('Show Seconds Counter with simple digital clock'),
+    '#description' => t('Show Seconds Counter with digital clock'),
   );
 
   $form['advance_clock_show_only_city'] = array(
     '#type' => 'checkbox',
     '#title' => t('Show Only City Name'),
     '#default_value' => variable_get('advance_clock_show_only_city', FALSE),
-    '#description' => t('Show only City Name in clock\'s title. NOTE: Works only with Simple Digital Clock'),
+    '#description' => t('Show only City Name in clock\'s title.'),
   );
 
   $form['advance_clock_hour24'] = array(
     '#type' => 'checkbox',
-    '#title' => t('24 hr\'s Clock.'),
+    '#title' => t('24 hr\'s Clock'),
     '#default_value' => variable_get('advance_clock_hour24', FALSE),
-    '#description' => t('The Clock Type, Default is 12Hr Clock'),
+    '#description' => t('Default is 12Hr Clock to display with digital clock.'),
   );
 
   $form['advance_clock_show_date'] = array(
@@ -57,61 +57,18 @@ function advance_clock_admin_settings() {
     '#default_value' => variable_get('advance_clock_show_date', FALSE),
   );
 
-  $form['advance_clock_simple_advance'] = array(
+  $form['advance_clock_type'] = array(
     '#type' => 'radios',
-    '#title' => t('Select your preference'),
+    '#title' => t('Clock Type'),
     '#options' => array(
-      0 => t('Advance Digital Clock (jQuery 1.5 or above (Stable).)'),
-      1 => t('Advance Digital/Analog Clock (jQuery 1.9 or above)'),
+      0 => t('Digital Clock'),
+      1 => t('Analog Clock'),
     ),
-    '#default_value' => variable_get('advance_clock_simple_advance', FALSE),
-    '#description' => t('Set this to <em>Yes</em> if you would like this category to be selected by default.'),
-  );
-
-  // jQuery 1.5
-  $form['advance_clock_digital_jq15'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Simple Digital Clock.'),
-    '#description' => t('Uses  jQuery 1.5 or above (Stable).'),
-    '#default_value' => variable_get('advance_clock_digital_jq15', FALSE),
-    '#states' => array(
-      'visible' => array(
-        ':input[name="advance_clock_simple_advance"]' => array('checked' => TRUE),
-      ),
-    ),
-  );
-
-  // @TODO: Disable these options if "advance_clock_digital_jq15" is used.
-  $form['advance_clock_digital'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Digital Clock.'),
-    '#description' => t('Uses jQuery 1.10.2.'),
-    '#states' => array(
-      'visible' => array(
-        ':input[name="advance_clock_simple_advance"]' => array('checked' => FALSE),
-      ),
-    ),
-    '#default_value' => variable_get('advance_clock_digital', FALSE),
+    '#default_value' => variable_get('advance_clock_type', 0),
+    '#description' => t('Select which type of clock you want to display.'),
+    '#required' => TRUE,
   );
 
-  $form['advance_clock_analog'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Analog Clock.'),
-    '#default_value' => variable_get('advance_clock_analog', FALSE),
-    '#description' => t('Uses jQuery 1.10.2. (Not Reommended!)'),
-    '#states' => array(
-      'visible' => array(
-        ':input[name="advance_clock_simple_advance"]' => array('checked' => FALSE),
-      ),
-    ),
-  );
-  $form['#validate'][] = 'advance_clock_admin_settings_validate';
   return system_settings_form($form);
 }
 
-/**
- * Form validation handler for hook_admin_settings().
- */
-function advance_clock_admin_settings_validate($form, &$form_state) {
-  // Nothing
-}
diff --git a/advance_clock.info b/advance_clock.info
index 20572b9..ea81d8f 100644
--- a/advance_clock.info
+++ b/advance_clock.info
@@ -1,7 +1,8 @@
 name = Advance Clock
 description = Provides a plugin displaying the current time.
 core = 7.x
-version = 7.x-1.x-dev
+version = 7.x-2.x-dev
 package = Date/Time
 project = "advance_clock"
-scripts[] = /js/minipanel_dialog_link.js
\ No newline at end of file
+dependencies[] = moment
+dependencies[] = jquery_update
diff --git a/advance_clock.module b/advance_clock.module
index f68f0b1..005951d 100644
--- a/advance_clock.module
+++ b/advance_clock.module
@@ -2,14 +2,7 @@
 
 /**
  * @file
- * Enables site-wide keyword searching.
- */
-/**
- * This module holds functions useful for rooting the nodes while search.
- * It works parallel to the search,
- * Enhancing search to add user experience to get his interests
- * On the bases of keywords he provided.
- * Please contribute!
+ * This module provides advanced clock block which is user configurable
  */
 
 /**
@@ -18,8 +11,11 @@
 function advance_clock_help($path) {
   switch ($path) {
     case 'admin/help#advance_clock':
-      return t('Welcome to Advance Clock. <p>As the name
-      suggests this module gets you the advance fucntionalities provided by clock module</p><p>This module provides 1) A customizable clock plugin over the block plugin by clock module thus this will provide an integration with panel pages and views depending upon the configuartion options choosen. This module will also provide per user configurable clock TODO: Add seconds option to clock</p>'
+      return t('<h3> Welcome to Advance Clock help</h3> <p>As the name suggests this module gets you the advance and user configurable functionalities clock</p>
+        <p>This module provides
+        <ol> <li> A customizable clock block plugin.</li>
+        <li> This module will also provide per user configurable clock.</li> </ol>
+        </p>'
       );
   }
 }
@@ -55,7 +51,7 @@ function advance_clock_ctools_plugin_directory($module, $plugin) {
  */
 function advance_clock_menu() {
   // Link to administer advance clock module.
-  $items['admin/config/advance-clock'] = array(
+  $items['admin/config/user-interface/advance-clock'] = array(
     'title' => t('Advance Clock'),
     'description' => t('Advance Clock settings'),
     'position' => 'right',
@@ -66,7 +62,7 @@ function advance_clock_menu() {
     'file path' => drupal_get_path('module', 'system'),
   );
 
-  $items['admin/config/advance-clock/advance-clock-settings'] = array(
+  $items['admin/config/user-interface/advance-clock/advance-clock-settings'] = array(
     'title' => t('Advance Clock settings'),
     'description' => t('Advance Clock configurations tools.'),
     'page callback' => 'drupal_get_form',
@@ -103,6 +99,14 @@ function advance_clock_theme($existing, $type, $theme, $path) {
         'variables' => array('images' => NULL),
         'template' => '/template/digital-clock',
       ),
+      'digital_clocks' => array(
+        'variables' => array(),
+        'template' => '/template/digital-clocks',
+      ),
+      'analog_clocks' => array(
+        'variables' => array(),
+        'template' => '/template/analog-clocks',
+      ),
     );
     return $templates;
   }
@@ -134,7 +138,7 @@ function advance_clock_add_clock_form_validate($form, &$form_state) {
   //Number of counts for user
   $user_clocks = count(array_filter($form_state['values']['clock_zone']));
   if ($user_clocks > variable_get('advance_clock_count')) {
-    form_set_error('clock_zone', t('Only @clock clock\'s allowed.', array('@clock' => variable_get('advance_clock_count'))));
+    form_set_error('clock_zone', t('Only @clock clock(s) allowed.', array('@clock' => variable_get('advance_clock_count', 1))));
   }
 }
 
@@ -144,13 +148,17 @@ function advance_clock_add_clock_form_submit($form, &$form_state) {
   $zones = implode(',', array_filter($form_state['values']['clock_zone']));
   if (count($user_clocks)) {
     $num_updated = db_update('advance_clock')
-        ->fields(array('clock_zone' => $zones))
-        ->condition('uid', $user->uid, '=')
-        ->execute();
+      ->fields(array('clock_zone' => $zones))
+      ->condition('uid', $user->uid, '=')
+      ->execute();
   }
   else {
     $query_advance_clock = db_insert('advance_clock')
-            ->fields(array('uid' => $user->uid, 'clock_zone' => $zones, 'timestamp' => time()))->execute();
+      ->fields(array(
+        'uid' => $user->uid,
+        'clock_zone' => $zones,
+        'timestamp' => time()
+      ))->execute();
   }
 }
 
@@ -177,7 +185,11 @@ function _advance_clock_get_clocks($blank = NULL) {
     // reasons and should not be used, the list is filtered by a regular
     // expression.
     if (preg_match('!^((Africa|America|Antarctica|Arctic|Asia|Atlantic|Australia|Europe|Indian|Pacific)/|UTC$)!', $zone)) {
-      $timezoneTable[format_date(REQUEST_TIME, 'custom', ' O', $zone) / 100 . '|' . $zone] = t('(GMT@date) @zone,', array('@zone' => t(str_replace('_', ' ', $zone)), '@date' => format_date(REQUEST_TIME, 'custom', ' O', $zone), '@d' => format_date(REQUEST_TIME, 'custom', ' O', $zone) / 100));
+      $timezoneTable[format_date(REQUEST_TIME, 'custom', ' O', $zone) / 100 . '|' . $zone] = t('(GMT@date) @zone,', array(
+        '@zone' => t(str_replace('_', ' ', $zone)),
+        '@date' => format_date(REQUEST_TIME, 'custom', ' O', $zone),
+        '@d' => format_date(REQUEST_TIME, 'custom', ' O', $zone) / 100
+      ));
     }
   }
   asort($timezoneTable);
@@ -214,108 +226,56 @@ function advance_clock_block_view($delta = '') {
 }
 
 function _advance_clock_clock_list() {
-  $items = '';
-  $js_elements = '';
+
   $users_clocks = _advance_clock_get_user_clocks();
   $module_path = drupal_get_path('module', 'advance_clock');
   $allowed_clock_count = variable_get('advance_clock_count');
   $show_date = variable_get('advance_clock_show_date');
   $show_secs = variable_get('advance_clock_show_secs');
   $show_city = variable_get('advance_clock_show_only_city');
+  $clock_type = variable_get('advance_clock_type', 0);
+  $hr_format = variable_get('advance_clock_hour24');
 
   $configured_clocks = count($users_clocks);
-  // @TODO: Show first n clocks for a selected value.
+
   if ($allowed_clock_count < $configured_clocks) {
     drupal_set_message('Please configure clocks', 'warning');
     $configured_clocks = $allowed_clock_count;
   }
 
+  $output = '';
 
-  // Digital Clock (JQuery 1.5 and Abv).
-  // @TODO: Add Language switcher.
-  // @TODO: Date format made configurable.
-  if (variable_get('advance_clock_simple_advance') == FALSE) {
-    $output = '';
-    $clocks = '';
-    $module_path = drupal_get_path('module', 'advance_clock');
-    $clock_type = variable_get('advance_clock_hour24');
-    drupal_add_js($module_path . '/js/digitalClock.js');
-    drupal_add_css($module_path . '/css/digital-clock.css');
-    if ($configured_clocks != 0) {
-      // Gets one single clock value.
-      foreach ($users_clocks as $key => $zone) {
-        $user_clock = explode('|', $zone);
-        $user_location = $user_clock[1];
-        //show only city name
-        if ($show_city == TRUE) {
-          $clock['city'] = explode('/', $user_location);
-          $city = array_reverse($clock['city']);
-          $city[0] = str_replace('_', ' ', $city[0]);
-          $location = $city[0];
-        }
-        else {
-          $location = str_replace('_', ' ', $user_location);
-          $location = str_replace('/', ' / ', $location);
-        }
-        // JS.
-        $varstoadd['clock_offset'][$key] = $user_clock[0];
-
-        // Theme.
-        $clock['clock_id'] = $key;
-        $clock['format'] = $clock_type;
-        $clock['location'] = $location;
-        $clock['show_date'] = $show_date;
-        $clock['show_secs'] = $show_secs;
-
-        // Overrideable theme layer for single clock.
-        $clocks .= theme('digital_clock', array('clock' => $clock));
-      }
-
-      // JS.
-      $varstoadd['count'] = $key;
-      $varstoadd['clock_type'] = $clock_type;
-      drupal_add_js(array('advance_clock' => $varstoadd), 'setting');
-
-      // Theme Wrapper.
-      $output = '<div class="user-clocks">';
-      $output .= $clocks;
-      $output .= '</div>';
-    }
+  $settings = array(
+    'show_date' => $show_date,
+    'show_city' => $show_city,
+    'show_sec' => $show_secs,
+    'hr_format' => $hr_format,
+  );
+  libraries_load('moment', 'with-locales.min');
+  libraries_load('moment-timezone', 'with-data.min');
+  drupal_add_css($module_path . '/css/advance-clock.css');
+  drupal_add_js(array('advance_clock' => array('settings' => $settings)), 'setting');
+  $clocks = array();
+  foreach ($users_clocks as $key => $zone) {
+    $user_zone = explode('|', $zone);
+    $clocks[$key]['timezone'] = $user_zone[1];
+    $clocks[$key]['timediff']=$user_zone[0];
+    $user_city = explode('/', $zone);
+    $clocks[$key]['city'] = $user_city[1];
   }
-
-  // Code for analog/digital advance clock (using JS 1.10)
-  elseif (variable_get('advance_clock_simple_advance') == TRUE) {
-    $js_elements = '';
-    $output = '';
-    $clock_images = array();
-    drupal_add_css('http://www.jqueryscript.net/css/jquerysctipttop.css', 'external');
-    drupal_add_js('http://code.jquery.com/jquery-latest.min.js', 'external');
-    drupal_add_js($module_path . '/js/jClocksGMT.js');
-    drupal_add_js($module_path . '/js/jquery.rotate.js');
-    drupal_add_css($module_path . '/css/jClocksGMT.css');
-    if (count($users_clocks)) {
-      foreach ($users_clocks as $zone) {
-        $user_clocks = explode('|', $zone);
-        $js_elements .= "$('#" . drupal_html_class($user_clocks[1]) . "').jClocksGMT({offset: '" . $user_clocks[0] . "', hour24: " . variable_get('advance_clock_hour24', FALSE) . ", digital: " . variable_get('advance_clock_digital', FALSE) . "});";
-        $clock_hour = array('path' => $module_path . '/images/clock_hour.png', 'alt' => 'clock hour', 'attributes' => array('class' => 'hour',),);
-        $clock_min = array('path' => $module_path . '/images/clock_min.png', 'alt' => 'clock min', 'attributes' => array('class' => 'min',),);
-        $clock_sec = array('path' => $module_path . '/images/clock_sec.png', 'alt' => 'clock sec', 'attributes' => array('class' => 'sec',),);
-        $clock_face = array('path' => $module_path . '/images/clock_face.png', 'alt' => 'clock face', 'attributes' => array('class' => 'clock',),);
-        $clock_images['zone'] = str_replace("-", ",", $user_clocks[1]);
-        $clock_images['id'] = drupal_html_class($user_clocks[1]);
-        if (variable_get('advance_clock_analog', FALSE)) {
-          $clock_images['hour'] = theme('image', $clock_hour);
-          $clock_images['min'] = theme('image', $clock_min);
-          $clock_images['sec'] = theme('image', $clock_sec);
-          $clock_images['clock'] = theme('image', $clock_face);
-        }
-        $list[] = theme('advance_clock', array('images' => $clock_images));
-      }
-      $output = '<div class="user-clocks">';
-      $output .= theme('item_list', array('items' => $list, 'attributes' => array('class' => 'clocks-list')));
-      $output .= '</div>';
-      drupal_add_js("$(document).ready(function(){" . $js_elements . "});", 'inline');
-    }
+  if ($clock_type == 0) {
+    $output .= theme('digital_clocks', array(
+      'clocks' => $clocks,
+      'settings' => $settings,
+    ));
+    drupal_add_js($module_path . '/js/digital-clock.js');
+  }
+  else {
+    $output .= theme('analog_clocks', array(
+      'clocks' => $clocks,
+      'settings' => $settings,
+    ));
+    drupal_add_js($module_path . '/js/analog-clock.js');
   }
   return $output;
 }
diff --git a/css/advance-clock.css b/css/advance-clock.css
new file mode 100644
index 0000000..a86549c
--- /dev/null
+++ b/css/advance-clock.css
@@ -0,0 +1,47 @@
+/** Digital clock theming **/
+li.digital-clock, li.analog-clock {
+  list-style: none;
+  margin: 5px 0;
+  text-align: center;
+}
+
+li.digital-clock > .digits {
+  background-color: #dddddd;
+}
+
+li.digital-clock .city, li.analog-clock .city {
+  font-weight: bold;
+}
+
+/** Analog clock theming **/
+li.analog-clock .dial {
+  background: transparent url('../images/clockface.jpg') no-repeat;
+  height: 180px;
+  width: 180px;
+  position: relative;
+  margin: 2px auto 0 auto;
+  list-style: none;
+}
+
+.hour, .min, .sec {
+  height: 180px;
+  width: 9px;
+  position: absolute;
+  top: 0px;
+  left: 85px;
+}
+
+.hour {
+  z-index: 1;
+  background: url('../images/hourhand.png') no-repeat;
+}
+
+.sec {
+  z-index: 3;
+  background: url('../images/sechand.png') no-repeat;
+}
+
+.min {
+  z-index: 2;
+  background: url('../images/minhand.png') no-repeat;
+}
diff --git a/css/digital-clock.css b/css/digital-clock.css
deleted file mode 100644
index 4afc061..0000000
--- a/css/digital-clock.css
+++ /dev/null
@@ -1,51 +0,0 @@
-.user-clocks {
-width: 100%;
-float: left;
-margin-bottom: 8px;
-}
-
-.clock {
-	border: 1px solid #0779BF;
-	width: 31.7%;
-	float: left;
-}
-
-.clock .advance-clock-date { 
-	text-align: center;
-}
-
-.clock .advance-clock-location {
-	border-bottom: 1px solid #0779BF;
-	text-align: center;
-	background-color: #48A9E4;
-	font-style: italic;
-	font-weight: bold;
-	color: #FFFFFF;
-}
-
-.clock ul { 
-	list-style:none;
-	padding: 0px !important;
-	margin: 0px !important;
-	text-align: center;
-	font-weight: bold;
-	color: #0779BF;
-}
-
-.clock ul li { 
-	display:inline;
-	text-align: center;
-	padding: 0px;
-	margin: 0px;
-}
-
-.clock #point { 
-	position:relative;
-	-moz-animation:mymove 1s ease infinite; -webkit-animation:mymove 1s ease infinite; 
-	padding-left: 1px; 
-	padding-right: 1px; 
-}
-
-.clock .format {
-	padding-left: 3px; 
-}
\ No newline at end of file
diff --git a/css/jClocksGMT.css b/css/jClocksGMT.css
deleted file mode 100755
index 7f607ec..0000000
--- a/css/jClocksGMT.css
+++ /dev/null
@@ -1,60 +0,0 @@
-.clock_container {
-    float:left;
-    margin-right:2px;
-    width:110px;
-    position: relative;
-}
-.clock_container .lbl {
-    font-size:10px;
-    color: #333333;
-    line-height: 22px;
-    /*background: url(../images/clock_label.png);*/
-    background-color: white;
-    text-align: center;
-    height: auto;
-    width: 108px;
-    margin: 0 auto;
-    font-weight: bold;
-    text-transform: capitalize;
-}
-.clockHolder {
-    width:100px; 
-    margin:0 auto;
-    position:relative;
-}
-.clock {
-    margin-left:5px;
-}
-
-.sec {
-    display:block;
-    position:absolute;
-}
-.min {
-    display:block;
-    position:absolute;
-}
-.hour {
-    display:block;
-    position:absolute;
-}
-
-.rotatingWrapper {
-    position:absolute;
-    width:100px;
-    height:100px;
-    left: 5px;
-
-}
-.digital {
-    font-weight:bold;
-    font-size: 14px;
-    color: #444444;
-    text-align:center;
-}
-.user-clocks {
-    display:inline-block;    
-}
-.clocks-list {
-    list-style-type:none;
-}
\ No newline at end of file
diff --git a/js/analog-clock.js b/js/analog-clock.js
new file mode 100644
index 0000000..00495dd
--- /dev/null
+++ b/js/analog-clock.js
@@ -0,0 +1,44 @@
+(function ($) {
+  Drupal.behaviors.analogClock = {
+    attach: function (context, settings) {
+
+      var settings = Drupal.settings.advance_clock.settings;
+
+      if (settings.show_date == 1) {
+        $('.analog-clocks .timezone').each(function (i) {
+
+          var tz = $(this).data('location');
+          var now = moment().tz(tz);
+
+          if (settings.show_date) {
+            $(this).find('.date').html(now.format("d MMM YYYY"));
+          }
+        });
+      }
+
+      // Run a timer every second and update the clock
+      (function update_time() {
+
+        var now = moment();
+
+        //update  time
+        $('.analog-clocks .timezone').each(function (i) {
+          var tz = $(this).data('location');
+          var now = moment().tz(tz);
+          var second = now.seconds() * 6;
+          var minute = now.minutes() * 6 + second / 60;
+          var hour = ((now.hours() % 12) / 12) * 360 + minute / 60;
+
+          $(this).find('.hour').css("transform", "rotate(" + hour + "deg)");
+          $(this).find('.min').css("transform", "rotate(" + minute + "deg)");
+          $(this).find('.sec').css("transform", "rotate(" + second + "deg)");
+
+        });
+
+        setTimeout(update_time, 1000);
+
+      })();
+    }
+  }
+
+})(jQuery);
diff --git a/js/digital-clock.js b/js/digital-clock.js
new file mode 100644
index 0000000..3e7af74
--- /dev/null
+++ b/js/digital-clock.js
@@ -0,0 +1,55 @@
+(function ($) {
+  Drupal.behaviors.digitalClock = {
+    attach: function (context, settings) {
+
+      var settings = Drupal.settings.advance_clock.settings;
+
+      if (settings.hr_format == 0) {
+        var format = "hh:mm";
+      } else {
+        var format = "HH:mm";
+      }
+      if (settings.show_sec == 1) {
+        format += ":ss";
+      }
+
+      if (settings.show_date == 1) {
+        $('.digital-clocks .timezone').each(function (i) {
+
+          var tz = $(this).data('location');
+          var now = moment().tz(tz);
+
+          if (settings.show_date) {
+            $(this).find('.date').html(now.format("d MMM YYYY"));
+          }
+        });
+      }
+
+      // Update the clock
+      (function update_time() {
+
+        var now = moment().format(format);
+
+        //update  time
+        $('.digital-clocks .timezone').each(function (i) {
+          var tz = $(this).data('location');
+          var now = moment().tz(tz);
+          $(this).find('.digits').html(now.format(format));
+          if (settings.hr_format == 0) {
+            $(this).find('.ampm').html(now.format("A"));
+          }
+        });
+
+        if (settings.show_sec == 1) {
+          // Schedule this function to be run again in 1 sec
+          setTimeout(update_time, 1000);
+        } else {
+          // Schedule this function to be run again in 1 min
+          setTimeout(update_time, 60000);
+        }
+
+      })();
+    }
+  }
+
+})(jQuery);
diff --git a/js/digitalClock.js b/js/digitalClock.js
deleted file mode 100644
index cfb3cf6..0000000
--- a/js/digitalClock.js
+++ /dev/null
@@ -1,73 +0,0 @@
-
-(function($) {
-  Drupal.behaviors.digitalClock = {
-    attach: function(context, settings) {
-      // Used as key in each function.
-      if ( !Drupal.settings.advance_clock) {
-        return;
-      }
-      var i = Drupal.settings.advance_clock.count;
-      // Key - Value pair ("clock number" - "GMT Value").
-      var clock_offset = Drupal.settings.advance_clock.clock_offset;
-      var clock_type = Drupal.settings.advance_clock.clock_type;
-
-      // Create two variable with the names of the months and days in an array.
-      var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
-      var dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
-
-      return $.each(clock_offset, function(i, val) {
-
-        // Create a newDate() object
-        var newDate = new Date(new Date().getTime() + (new Date().getTimezoneOffset() * 60000) + (3600000 * val));
-        // These functions need to be called for each and every clock. Say if there are 3 clocks this will be called 3 times.
-
-        // Extract the current date from Date object
-        newDate.setDate(newDate.getDate());
-        // Output the day, date, month and year    
-        $('#date-' + i).html(dayNames[newDate.getDay()] + " " + newDate.getDate() + ' ' + monthNames[newDate.getMonth()] + ' ' + newDate.getFullYear());
-
-        // Seconds.
-        setInterval(function() {
-          // Create a newDate() object and extract the seconds of the current time on the visitor's
-          var seconds = new Date(new Date().getTime() + (new Date().getTimezoneOffset() * 60000) + (3600000 * val)).getSeconds();
-          // Add a leading zero to seconds value
-          $("#sec-" + i).html((seconds < 10 ? "0" : "") + seconds);
-        }, 1000);
-
-        // Minutes.
-        setInterval(function() {
-          // Create a newDate() object and extract the minutes of the current time on the visitor's
-          var minutes = new Date(new Date().getTime() + (new Date().getTimezoneOffset() * 60000) + (3600000 * val)).getMinutes();
-          // Add a leading zero to the minutes value
-          $("#min-" + i).html((minutes < 10 ? "0" : "") + minutes);
-        }, 1000);
-
-        // Hours.
-        setInterval(function() {
-          // Create a newDate() object and extract the hours of the current time on the visitor's
-          var hours = new Date(new Date().getTime() + (new Date().getTimezoneOffset() * 60000) + (3600000 * val)).getHours();
-
-          // Clock Type.
-          if ( clock_type == 0 )
-          {
-            // Choose either "AM" or "PM" as appropriate
-            var timeOfDay = (hours < 12) ? "AM" : "PM";
-            // Convert the hours component to 12-hour format if needed
-            currentHoursAP = (hours > 12) ? hours - 12 : hours;
-            // Convert an hours component of "0" to "12"
-            currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP;
-            // Add a leading zero to the hours value
-            $("#hours-" + i).html((currentHoursAP < 10 ? "0" : "") + currentHoursAP);
-            $("#format-" + i).html(timeOfDay);
-
-          }
-          else
-          {
-            $("#hours-" + i).html((hours < 10 ? "0" : "") + hours);
-          }
-        }, 1000);
-        // Ends.
-      });
-    }
-  };
-})(jQuery);
diff --git a/js/jClocksGMT.js b/js/jClocksGMT.js
deleted file mode 100755
index e9cf16b..0000000
--- a/js/jClocksGMT.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/********************************************************************************************************
- *
- * NAME: jClocksGMT
- * VERSION: 1.0 
- * LAST UPDATE: 2013.20.03
- *
- * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
- * 
- * Author Information:
- *      Name: Richard McMaster
- *      Email: richard.mcmaster@live.com
- *      Location: Houston, Texas, United States
- *      Website: http://www.mcmastermind.com
- *
- * Plugin Website: http://www.github.com/mcmastermind/jClocksGMT
- *
- * Description:
- *      jQuery based analog and digital clock(s) based on GMT offsets. Requires jQuery Rotate plugin.
- *
- * Credit Resources: 
- *      Article: "Convert the local time to another time zone with this JavaScript"
- *      URL: http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/6016329
- *      Author: Melonfire
- *      Date: 2006.03.01
- *
- *      Article: "Analog JQuery clock"
- *      URL: http://d-zig.com/Desc.aspx?item=74
- *      Author: Jim Rasmussen
- *      Date: circa 2011
- *
- * Documentation:
- *      Default options:
- *          offset: '0',    // String: Set GMT offset (+5.5, -4, 0, etc)
- *          angleSec: 0,    // Integer: Starting angle of second hand
- *          angleMin: 0,    // Integer: Starting angle of minute hand
- *          angleHour: 0,   // Integer: Starting angle of hour hand
- *          hour24: false,  // Boolean: 24 hour clock or 12 hour clock
- *          digital: true,  // Boolean: Display digital clock
- *          analog: true    // Boolean: Display analog clock
- *
- *      Common offsets by time zone: (only use the number after GMT: GMT-2 = offset: '-2')
- *          GMT-12	 Eniwetok
- *          GMT-11	 Samoa
- *          GMT-10	 Hawaii
- *          GMT-9	 Alaska
- *          GMT-8	 PST, Pacific US
- *          GMT-7	 MST, Mountain US
- *          GMT-6	 CST, Central US
- *          GMT-5	 EST, Eastern US
- *          GMT-4	 Atlantic, Canada
- *          GMT-3	 Brazilia, Buenos Aries
- *          GMT-2	 Mid-Atlantic
- *          GMT-1	 Cape Verdes
- *          GMT	0    Greenwich Mean Time, Dublin
- *          GMT+1	 Berlin, Rome
- *          GMT+2	 Israel, Cairo
- *          GMT+3	 Moscow, Kuwait
- *          GMT+4	 Abu Dhabi, Muscat
- *          GMT+5	 Islamabad, Karachi
- *          GMT+6	 Almaty, Dhaka
- *          GMT+7	 Bangkok, Jakarta
- *          GMT+8	 Hong Kong, Beijing
- *          GMT+9	 Tokyo, Osaka
- *          GMT+10	 Sydney, Melbourne, Guam
- *          GMT+11	 Magadan, Soloman Is.
- *          GMT+12	 Fiji, Wellington, Auckland
- *
- *      United States offsets by time zone: (only use the number after UTC: UTC-2 = offset: '-2')
- *       (Standard Time)
- *          UTC-5	 EST (Eastern Standard Time)
- *          UTC-6	 CST (Central Standard Time)
- *          UTC-7	 MST (Mountain Standard Time)
- *          UTC-8	 PST (Pacific Standard Time)
- *       (Daylight Time: used when "Daylight Savings Time" is in affect)
- *          UTC-4	 EDT (Eastern Daylight Time)
- *          UTC-5	 CDT (Central Daylight Time)
- *          UTC-6	 MDT (Mountain Daylight Time)
- *          UTC-7	 PDT (Pacific Daylight Time)
- *
- ********************************************************************************************************/
-
-(function($) {
-
-    $.fn.extend({
-        
-        jClocksGMT: function(options) {
-            
-            var defaults = {
-                offset: '0',
-                angleSec: 0,
-                angleMin: 0,
-                angleHour: 0,
-                hour24: false,
-                digital: true,
-                analog: true
-            }
-            
-            var options = $.extend(defaults, options);
-            
-            return this.each(function(){
-                var offset = options.offset;
-                var id = $(this).attr('id');
-                
-                // initial hand rotation
-                $('#' + id + ' .sec').rotate(options.angleSec);
-                $('#' + id + ' .min').rotate(options.angleMin);
-                $('#' + id + ' .hour').rotate(options.angleHour);
-
-                setInterval(function () {
-                
-                    // create new date object
-                    var d = new Date;
-                    // convert to msec
-                    // add local time offset
-                    // get UTC time in msec
-                    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
-                    
-                    // create new Date object for different city
-                    // using supplied offset
-                    var nd = new Date(utc + (3600000 * offset));
-                    
-                    // format numbers
-                    var s = nd.getSeconds();
-                    var m = nd.getMinutes();
-                    var hh = nd.getHours();
-                    var h = hh;
-                    
-                    // format for 12 hour
-                    if(!options.hour24) {
-                        var dd = "AM";
-                        if( h >= 12) {
-                            h = hh-12;
-                            dd = "PM";
-                        }
-                        if( h == 0 ) {
-                            h = 12;
-                        }
-                    }
-                    
-                    if(options.analog) {
-                        // rotate second hand
-                        options.angleSec = (nd.getSeconds() * 6);
-                        $('#' + id + ' .sec').rotate(options.angleSec);
-                        // rotate minute hand
-                        options.angleMin = (nd.getMinutes() * 6);
-                        $('#' + id + ' .min').rotate(options.angleMin);
-                        // rotate hour hand
-                        options.angleHour = ((nd.getHours() * 5 + nd.getMinutes() / 12) * 6);
-                        $('#' + id + ' .hour').rotate(options.angleHour);
-                    }
-                    
-                    // display digital clock if enabled
-                    if(options.digital) {
-                        $('#' + id + ' .digital .hr').html(h + ':');
-                        $('#' + id + ' .digital .minute').html(m < 10 ? "0" + m : m);
-                        if(!options.hour24) {
-                            $('#' + id + ' .digital .period').html(dd);
-                        }
-                    }
-                }, 1000);
-            });
-        }
-    });
-})(jQuery);
\ No newline at end of file
diff --git a/js/jquery.rotate.js b/js/jquery.rotate.js
deleted file mode 100755
index b76d79c..0000000
--- a/js/jquery.rotate.js
+++ /dev/null
@@ -1,314 +0,0 @@
-
-// VERSION: 2.2 LAST UPDATE: 13.03.2012
-/* 
- * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
- * 
- * Made by Wilq32, wilq32@gmail.com, Wroclaw, Poland, 01.2009
- * Website: http://code.google.com/p/jqueryrotate/ 
- */
-
-// Documentation removed from script file (was kinda useless and outdated)
-
-(function($) {
-var supportedCSS,styles=document.getElementsByTagName("head")[0].style,toCheck="transformProperty WebkitTransform OTransform msTransform MozTransform".split(" ");
-for (var a=0;a<toCheck.length;a++) if (styles[toCheck[a]] !== undefined) supportedCSS = toCheck[a];
-// Bad eval to preven google closure to remove it from code o_O
-// After compresion replace it back to var IE = 'v' == '\v'
-var IE = eval('"v"=="\v"');
-
-jQuery.fn.extend({
-    rotate:function(parameters)
-    {
-        if (this.length===0||typeof parameters=="undefined") return;
-            if (typeof parameters=="number") parameters={angle:parameters};
-        var returned=[];
-        for (var i=0,i0=this.length;i<i0;i++)
-            {
-                var element=this.get(i);	
-                if (!element.Wilq32 || !element.Wilq32.PhotoEffect) {
-
-                    var paramClone = $.extend(true, {}, parameters); 
-                    var newRotObject = new Wilq32.PhotoEffect(element,paramClone)._rootObj;
-
-                    returned.push($(newRotObject));
-                }
-                else {
-                    element.Wilq32.PhotoEffect._handleRotation(parameters);
-                }
-            }
-            return returned;
-    },
-    getRotateAngle: function(){
-        var ret = [];
-        for (var i=0,i0=this.length;i<i0;i++)
-            {
-                var element=this.get(i);	
-                if (element.Wilq32 && element.Wilq32.PhotoEffect) {
-                    ret[i] = element.Wilq32.PhotoEffect._angle;
-                }
-            }
-            return ret;
-    },
-    stopRotate: function(){
-        for (var i=0,i0=this.length;i<i0;i++)
-            {
-                var element=this.get(i);	
-                if (element.Wilq32 && element.Wilq32.PhotoEffect) {
-                    clearTimeout(element.Wilq32.PhotoEffect._timer);
-                }
-            }
-    }
-});
-
-// Library agnostic interface
-
-Wilq32=window.Wilq32||{};
-Wilq32.PhotoEffect=(function(){
-
-	if (supportedCSS) {
-		return function(img,parameters){
-			img.Wilq32 = {
-				PhotoEffect: this
-			};
-            
-            this._img = this._rootObj = this._eventObj = img;
-            this._handleRotation(parameters);
-		}
-	} else {
-		return function(img,parameters) {
-			// Make sure that class and id are also copied - just in case you would like to refeer to an newly created object
-            this._img = img;
-
-			this._rootObj=document.createElement('span');
-			this._rootObj.style.display="inline-block";
-			this._rootObj.Wilq32 = 
-				{
-					PhotoEffect: this
-				};
-			img.parentNode.insertBefore(this._rootObj,img);
-			
-			if (img.complete) {
-				this._Loader(parameters);
-			} else {
-				var self=this;
-				// TODO: Remove jQuery dependency
-				jQuery(this._img).bind("load", function()
-				{
-					self._Loader(parameters);
-				});
-			}
-		}
-	}
-})();
-
-Wilq32.PhotoEffect.prototype={
-    _setupParameters : function (parameters){
-		this._parameters = this._parameters || {};
-        if (typeof this._angle !== "number") this._angle = 0 ;
-        if (typeof parameters.angle==="number") this._angle = parameters.angle;
-        this._parameters.animateTo = (typeof parameters.animateTo==="number") ? (parameters.animateTo) : (this._angle); 
-
-        this._parameters.step = parameters.step || this._parameters.step || null;
-		this._parameters.easing = parameters.easing || this._parameters.easing || function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; }
-		this._parameters.duration = parameters.duration || this._parameters.duration || 1000;
-        this._parameters.callback = parameters.callback || this._parameters.callback || function(){};
-        if (parameters.bind && parameters.bind != this._parameters.bind) this._BindEvents(parameters.bind); 
-	},
-	_handleRotation : function(parameters){
-          this._setupParameters(parameters);
-          if (this._angle==this._parameters.animateTo) {
-              this._rotate(this._angle);
-          }
-          else { 
-              this._animateStart();          
-          }
-	},
-
-	_BindEvents:function(events){
-		if (events && this._eventObj) 
-		{
-            // Unbinding previous Events
-            if (this._parameters.bind){
-                var oldEvents = this._parameters.bind;
-                for (var a in oldEvents) if (oldEvents.hasOwnProperty(a)) 
-                        // TODO: Remove jQuery dependency
-                        jQuery(this._eventObj).unbind(a,oldEvents[a]);
-            }
-
-            this._parameters.bind = events;
-			for (var a in events) if (events.hasOwnProperty(a)) 
-				// TODO: Remove jQuery dependency
-					jQuery(this._eventObj).bind(a,events[a]);
-		}
-	},
-
-	_Loader:(function()
-	{
-		if (IE)
-		return function(parameters)
-		{
-			var width=this._img.width;
-			var height=this._img.height;
-			this._img.parentNode.removeChild(this._img);
-							
-			this._vimage = this.createVMLNode('image');
-			this._vimage.src=this._img.src;
-			this._vimage.style.height=height+"px";
-			this._vimage.style.width=width+"px";
-			this._vimage.style.position="absolute"; // FIXES IE PROBLEM - its only rendered if its on absolute position!
-			this._vimage.style.top = "0px";
-			this._vimage.style.left = "0px";
-
-			/* Group minifying a small 1px precision problem when rotating object */
-			this._container =  this.createVMLNode('group');
-			this._container.style.width=width;
-			this._container.style.height=height;
-			this._container.style.position="absolute";
-			this._container.setAttribute('coordsize',width-1+','+(height-1)); // This -1, -1 trying to fix ugly problem with small displacement on IE
-			this._container.appendChild(this._vimage);
-			
-			this._rootObj.appendChild(this._container);
-			this._rootObj.style.position="relative"; // FIXES IE PROBLEM
-			this._rootObj.style.width=width+"px";
-			this._rootObj.style.height=height+"px";
-			this._rootObj.setAttribute('id',this._img.getAttribute('id'));
-			this._rootObj.className=this._img.className;			
-		    this._eventObj = this._rootObj;	
-		    this._handleRotation(parameters);	
-		}
-		else
-		return function (parameters)
-		{
-			this._rootObj.setAttribute('id',this._img.getAttribute('id'));
-			this._rootObj.className=this._img.className;
-			
-			this._width=this._img.width;
-			this._height=this._img.height;
-			this._widthHalf=this._width/2; // used for optimisation
-			this._heightHalf=this._height/2;// used for optimisation
-			
-			var _widthMax=Math.sqrt((this._height)*(this._height) + (this._width) * (this._width));
-
-			this._widthAdd = _widthMax - this._width;
-			this._heightAdd = _widthMax - this._height;	// widthMax because maxWidth=maxHeight
-			this._widthAddHalf=this._widthAdd/2; // used for optimisation
-			this._heightAddHalf=this._heightAdd/2;// used for optimisation
-			
-			this._img.parentNode.removeChild(this._img);	
-			
-			this._aspectW = ((parseInt(this._img.style.width,10)) || this._width)/this._img.width;
-			this._aspectH = ((parseInt(this._img.style.height,10)) || this._height)/this._img.height;
-			
-			this._canvas=document.createElement('canvas');
-			this._canvas.setAttribute('width',this._width);
-			this._canvas.style.position="relative";
-			this._canvas.style.left = -this._widthAddHalf + "px";
-			this._canvas.style.top = -this._heightAddHalf + "px";
-			this._canvas.Wilq32 = this._rootObj.Wilq32;
-			
-			this._rootObj.appendChild(this._canvas);
-			this._rootObj.style.width=this._width+"px";
-			this._rootObj.style.height=this._height+"px";
-            this._eventObj = this._canvas;
-			
-			this._cnv=this._canvas.getContext('2d');
-            this._handleRotation(parameters);
-		}
-	})(),
-
-	_animateStart:function()
-	{	
-		if (this._timer) {
-			clearTimeout(this._timer);
-		}
-		this._animateStartTime = +new Date;
-		this._animateStartAngle = this._angle;
-		this._animate();
-	},
-    _animate:function()
-    {
-         var actualTime = +new Date;
-         var checkEnd = actualTime - this._animateStartTime > this._parameters.duration;
-
-         // TODO: Bug for animatedGif for static rotation ? (to test)
-         if (checkEnd && !this._parameters.animatedGif) 
-         {
-             clearTimeout(this._timer);
-         }
-         else 
-         {
-             if (this._canvas||this._vimage||this._img) {
-                 var angle = this._parameters.easing(0, actualTime - this._animateStartTime, this._animateStartAngle, this._parameters.animateTo - this._animateStartAngle, this._parameters.duration);
-                 this._rotate((~~(angle*10))/10);
-             }
-             if (this._parameters.step) {
-                this._parameters.step(this._angle);
-             }
-             var self = this;
-             this._timer = setTimeout(function()
-                     {
-                     self._animate.call(self);
-                     }, 10);
-         }
-
-         // To fix Bug that prevents using recursive function in callback I moved this function to back
-         if (this._parameters.callback && checkEnd){
-             this._angle = this._parameters.animateTo;
-             this._rotate(this._angle);
-             this._parameters.callback.call(this._rootObj);
-         }
-     },
-
-	_rotate : (function()
-	{
-		var rad = Math.PI/180;
-		if (IE)
-		return function(angle)
-		{
-            this._angle = angle;
-			this._container.style.rotation=(angle%360)+"deg";
-		}
-		else if (supportedCSS)
-		return function(angle){
-            this._angle = angle;
-			this._img.style[supportedCSS]="rotate("+(angle%360)+"deg)";
-		}
-		else 
-		return function(angle)
-		{
-            this._angle = angle;
-			angle=(angle%360)* rad;
-			// clear canvas	
-			this._canvas.width = this._width+this._widthAdd;
-			this._canvas.height = this._height+this._heightAdd;
-						
-			// REMEMBER: all drawings are read from backwards.. so first function is translate, then rotate, then translate, translate..
-			this._cnv.translate(this._widthAddHalf,this._heightAddHalf);	// at least center image on screen
-			this._cnv.translate(this._widthHalf,this._heightHalf);			// we move image back to its orginal 
-			this._cnv.rotate(angle);										// rotate image
-			this._cnv.translate(-this._widthHalf,-this._heightHalf);		// move image to its center, so we can rotate around its center
-			this._cnv.scale(this._aspectW,this._aspectH); // SCALE - if needed ;)
-			this._cnv.drawImage(this._img, 0, 0);							// First - we draw image
-		}
-
-	})()
-}
-
-if (IE)
-{
-Wilq32.PhotoEffect.prototype.createVMLNode=(function(){
-document.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)");
-		try {
-			!document.namespaces.rvml && document.namespaces.add("rvml", "urn:schemas-microsoft-com:vml");
-			return function (tagName) {
-				return document.createElement('<rvml:' + tagName + ' class="rvml">');
-			};
-		} catch (e) {
-			return function (tagName) {
-				return document.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');
-			};
-		}		
-})();
-}
-
-})(jQuery);
diff --git a/js/minipanel_dialog_link.js b/js/minipanel_dialog_link.js
deleted file mode 100644
index f81075b..0000000
--- a/js/minipanel_dialog_link.js
+++ /dev/null
@@ -1,21 +0,0 @@
-(function($) {
-  // Store our function as a property of Drupal.behaviors.
-  Drupal.behaviors.minipanel_dialog_link = { attach: function(context, settings) {
-      $('.minipanel-dialog-link-link a', context, settings).once('.minipanel-dialog-link-link a', function() {
-        if ( $(this).attr('title') != '<blank>' ) {
-          var title = $(this).attr('title');
-        }
-        else {
-          var title = '';
-        }
-        var $mini = $(this).parent().parent().find('.minipanel-dialog-link-mini');
-        $mini.dialog({ "modal": true, "draggable": false, "width": 560, "title": title, "resizable": false, "autoOpen": false });
-        $(this).click(function(e) {
-          e.preventDefault();
-          $mini.dialog("open");
-          return false;
-        });
-      });
-    }
-  };
-}(jQuery));
diff --git a/template/advance-clock.tpl.php b/template/advance-clock.tpl.php
deleted file mode 100644
index b30a18a..0000000
--- a/template/advance-clock.tpl.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<div id="<?php echo $variables['images']['id']; ?>" class="clock_container">
-  <div class="lbl"><?php echo @$variables['images']['zone']; ?></div>
-  <div class="clockHolder">
-    <?php if (isset($variables['images']['hour'])): ?>	
-      <div class="rotatingWrapper"><?php echo $variables['images']['hour']; ?></div>
-    <?php endif; ?>
-    <?php if (isset($variables['images']['min'])): ?>	
-      <div class="rotatingWrapper"><?php echo $variables['images']['min']; ?></div>
-    <?php endif; ?>
-    <?php if (isset($variables['images']['sec'])): ?>	
-      <div class="rotatingWrapper"><?php echo $variables['images']['sec']; ?></div>
-    <?php endif; ?>
-    <?php if (isset($variables['images']['clock'])): ?>	
-      <?php echo $variables['images']['clock']; ?>
-    <?php endif; ?>    
-  </div>
-  <div class="digital"> <span class="hr"></span><span class="minute"></span> <span class="period"></span> </div>
-</div>
\ No newline at end of file
diff --git a/template/analog-clocks.tpl.php b/template/analog-clocks.tpl.php
new file mode 100644
index 0000000..ab674d7
--- /dev/null
+++ b/template/analog-clocks.tpl.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * @file
+ * Analog clock template to display a list of rows.
+ *
+ * - $clocks : list of clocks with time zone, city name and time difference
+ * - $settings : settings for clocks
+ * @ingroup advance_clock > templates
+ */
+?>
+<?php
+$clocks = $variables['clocks'];
+$settings = $variables['settings'];
+?>
+<div class="container">
+  <div class="analog-clocks">
+    <ul>
+      <?php
+      foreach ($clocks as $key => $clock) {
+        ?>
+        <li class="analog-clock">
+          <div class="timezone"
+               data-location="<?php print $clock['timezone']; ?>">
+            <div class="city">
+              <?php
+              if ($settings['show_city']) {
+                print $clock['city'];
+              }
+              else {
+                print $clock['timezone'];
+              }
+              ?>
+            </div>
+            <div class="display">
+              <ul class="dial">
+                <li class="sec"></li>
+                <li class="min"></li>
+                <li class="hour"></li>
+              </ul>
+            </div>
+            <div class="date"></div>
+          </div>
+        </li>
+      <?php
+      }
+      ?>
+    </ul>
+  </div>
+</div>
diff --git a/template/digital-clock.tpl.php b/template/digital-clock.tpl.php
deleted file mode 100644
index 3453e4b..0000000
--- a/template/digital-clock.tpl.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * @file
- * Default simple digital clock template to display a list of rows.
- *
- * - $clock : array which holds the clock id and the clock format informatioin.
- * @ingroup advance_clock > templates
- */
-?>
-<?php $clock = $variables['clock']; ?>
-<div class="container">
-  <span class="clock-icon"></span>
-  <div class="clock">
-    <div class="advance-clock-location" id="location-<?php print $clock['clock_id']; ?>"><?php print $clock['location']; ?></div>
-    <?php if ($clock['show_date'] == TRUE) : ?>
-      <div class="advance-clock-date" id="date-<?php print $clock['clock_id']; ?>"></div>
-    <?php endif; ?>
-    <ul class="clock-wrap">
-      <li class="hours" id="hours-<?php print $clock['clock_id']; ?>">
-      <li id="point">:</li>  
-      <li class="min" id="min-<?php print $clock['clock_id']; ?>">
-        <?php if ($clock['show_secs'] == TRUE) : ?>        
-        <li id="point">:</li>
-        <li class="sec" id="sec-<?php print $clock['clock_id']; ?>">
-        <?php endif; ?>
-        <?php if ($clock['format'] == 0) : ?>
-        <li class="format" id="format-<?php print $clock['clock_id']; ?>">
-        <?php endif; ?>
-    </ul>
-  </div>
-</div>
diff --git a/template/digital-clocks.tpl.php b/template/digital-clocks.tpl.php
new file mode 100644
index 0000000..ffc7de8
--- /dev/null
+++ b/template/digital-clocks.tpl.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @file
+ * digital clock template to display a list of rows.
+ *
+ * - $clocks : list of clocks with time zone, city name and time difference
+ * - $settings : settings for clocks
+ * @ingroup advance_clock > templates
+ */
+?>
+<?php
+$clocks = $variables['clocks'];
+$settings = $variables['settings'];
+?>
+<div class="container">
+  <div class="digital-clocks">
+    <ul>
+      <?php
+      foreach ($clocks as $key => $clock) {
+        ?>
+        <li class="digital-clock">
+          <div class="timezone"
+               data-location="<?php print $clock['timezone'];?>">
+            <div class="city">
+              <?php
+              if ($settings['show_city']) {
+                print $clock['city'];
+              }
+              else {
+                print $clock['timezone'];
+              }
+              ?>
+            </div>
+            <div class="display">
+              <span class="digits"></span>
+              <span class="ampm"></span>
+              <div class="date"></div>
+            </div>
+          </div>
+        </li>
+      <?php
+      }
+      ?>
+    </ul>
+  </div>
+</div>
