diff --git a/eu_cookie_compliance.admin.inc b/eu_cookie_compliance.admin.inc
index 034db42..eeadb0e 100755
--- a/eu_cookie_compliance.admin.inc
+++ b/eu_cookie_compliance.admin.inc
@@ -9,134 +9,150 @@
  */
 function eu_cookie_compliance_admin_form($form_state) {
 
-  global $language;
-  $ln = $language->language;
-  $popup_settings = eu_cookie_compliance_get_settings();
-  $form['eu_cookie_compliance_' . $ln] = array (
-    '#type'  => 'item',
-    '#tree'   => TRUE,
-  );
+  $path = drupal_get_path('module', 'eu_cookie_compliance');
+  drupal_add_js($path . '/js/eu_cookie_compliance.admin.js', 'file');
 
+  global $language;
   if (module_exists('locale')) {
-    $form['eu_cookie_compliance_' . $ln]['#title'] = t('You are editing settings for the %language language.', array('%language' => $language->name));
+    $languages = locale_language_list();
+  }
+  else {
+    $languages = array($language->language => $language->native);
   }
 
-  $form['eu_cookie_compliance_' . $ln]['popup_enabled'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Enable popup'),
-    '#default_value' => isset($popup_settings['popup_enabled']) ? $popup_settings['popup_enabled'] : 0,
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_clicking_confirmation'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Consent by clicking'),
-    '#default_value' => isset($popup_settings['popup_clicking_confirmation']) ? $popup_settings['popup_clicking_confirmation'] : 1,
-    '#description' => t('By default by clicking any link on the website the visitor accepts the cookie policy. Uncheck this box if you do not require this functionality. You may want to edit the pop-up message below accordingly.'),
-  );
-
-  if (module_exists('geoip')){
-    $form['eu_cookie_compliance_' . $ln]['eu_only'] = array(
+  foreach ($languages as $ln => $lname) {
+    $popup_settings = eu_cookie_compliance_get_settings('all', $ln);
+
+    $form['eu_cookie_compliance_' . $ln] = array (
+      '#type'  => 'item',
+      '#tree'   => TRUE,
+    );
+
+    if (module_exists('locale')) {
+      $form['eu_cookie_compliance_' . $ln]['#title'] = t('You are editing settings for the %language language.', array('%language' => $lname));
+    }
+
+    $form['eu_cookie_compliance_' . $ln]['popup_enabled'] = array(
       '#type' => 'checkbox',
-      '#title' => t('Only display popup in EU countries (using the <a href="http://drupal.org/project/geoip">geoip</a> module)'),
-      '#default_value' => isset($popup_settings['eu_only']) ? $popup_settings['eu_only'] : 0,
+      '#title' => t('Enable popup'),
+      '#prefix' => '<div class="enable-popup">',
+      '#suffix' => '</div>',
+      '#default_value' => isset($popup_settings['popup_enabled']) ? $popup_settings['popup_enabled'] : 0,
     );
-  }
 
-  $form['eu_cookie_compliance_' . $ln]['popup_position'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Place the pop-up at the top of the website'),
-    '#default_value' => isset($popup_settings['popup_position']) ? $popup_settings['popup_position'] : 0,
-    '#description' => t('By default the pop-up appears at the bottom of the website. Tick this box if you want it to appear at the top'),
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_info'] = array(
-    '#type' => 'text_format',
-    '#title' => t('Popup message - requests consent'),
-    '#default_value' => isset($popup_settings['popup_info']['value']) ? $popup_settings['popup_info']['value'] : '',
-    '#required' => TRUE,
-    '#format' => isset($popup_settings['popup_info']['format']) ? $popup_settings['popup_info']['format'] : NULL,
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_agreed_enabled'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Enable thank you message'),
-    '#default_value' => isset($popup_settings['popup_agreed_enabled']) ? $popup_settings['popup_agreed_enabled'] : 1,
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_hide_agreed'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Clicking hides thank you message'),
-    '#default_value' => isset($popup_settings['popup_hide_agreed']) ? $popup_settings['popup_hide_agreed'] : 0,
-    '#description' => t('Clicking a link hides the thank you message automatically.'),
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_agreed'] = array(
-    '#type' => 'text_format',
-    '#title' => t('Popup message - thanks for giving consent'),
-    '#default_value' => isset($popup_settings['popup_agreed']['value']) ? $popup_settings['popup_agreed']['value'] : '',
-    '#required' => TRUE,
-    '#format' => isset($popup_settings['popup_agreed']['format']) ? $popup_settings['popup_agreed']['format'] : NULL,
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_link'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Privacy policy link'),
-    '#default_value' => isset($popup_settings['popup_link']) ? $popup_settings['popup_link'] : '',
-    '#size' => 60,
-    '#maxlength' => 220,
-    '#required' => TRUE,
-    '#description' => t('Enter link to your privacy policy or other page that will explain cookies to your users. For external links prepend http://'),
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_height'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Popup height in pixels'),
-    '#default_value' => isset($popup_settings['popup_height']) ? $popup_settings['popup_height'] : '',
-    '#size' => 5,
-    '#maxlength' => 5,
-    '#required' => FALSE,
-    '#description' => t('Enter an integer value for a desired height in pixels or leave empty for automatically adjusted height. Do not set this value if you are using responsive theme.'),
-
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_width'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Popup width in pixels or a percentage value'),
-    '#default_value' => isset($popup_settings['popup_width']) ? $popup_settings['popup_width'] : '100%',
-    '#size' => 5,
-    '#maxlength' => 5,
-    '#required' => TRUE,
-    '#description' => t('Set the width of the popup. This can be either an integer value or percentage of the screen width. For example: 200 or 50%'),
-  );
-
-  $form['eu_cookie_compliance_' . $ln]['popup_delay'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Popup time delay in seconds'),
-    '#default_value' => isset($popup_settings['popup_delay']) ? $popup_settings['popup_delay'] : 1,
-    '#size' => 5,
-    '#maxlength' => 5,
-    '#required' => TRUE,
-  );
-
-  $form_color_picker_type = 'textfield';
-
-  if (module_exists('jquery_colorpicker')) {
-    $form_color_picker_type = 'jquery_colorpicker';
-  }
+    $form['eu_cookie_compliance_' . $ln]['popup_clicking_confirmation'] = array(
+      '#prefix' => '<div id="' . $ln . '-popup-settings">',
+      '#type' => 'checkbox',
+      '#title' => t('Consent by clicking'),
+      '#default_value' => isset($popup_settings['popup_clicking_confirmation']) ? $popup_settings['popup_clicking_confirmation'] : 1,
+      '#description' => t('By default by clicking any link on the website the visitor accepts the cookie policy. Uncheck this box if you do not require this functionality. You may want to edit the pop-up message below accordingly.'),
+    );
 
-  $form['eu_cookie_compliance_' . $ln]['popup_bg_hex'] = array(
-    '#type' => $form_color_picker_type,
-    '#title' => t('Background Color'),
-    '#default_value' => isset($popup_settings['popup_bg_hex']) ? check_plain($popup_settings['popup_bg_hex']) : '0779BF', // Garland colors :)
-    '#description' => t('Change the background color of the popup. Provide HEX value without the #'),
-  );
+    if (module_exists('geoip')){
+      $form['eu_cookie_compliance_' . $ln]['eu_only'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Only display popup in EU countries (using the <a href="http://drupal.org/project/geoip">geoip</a> module)'),
+        '#default_value' => isset($popup_settings['eu_only']) ? $popup_settings['eu_only'] : 0,
+      );
+    }
 
-  $form['eu_cookie_compliance_' . $ln]['popup_text_hex'] = array(
-    '#type' => $form_color_picker_type,
-    '#title' => t('Text Color'),
-    '#default_value' => isset($popup_settings['popup_text_hex']) ? check_plain($popup_settings['popup_text_hex']) : 'ffffff',
-    '#description' => t('Change the text color of the popup. Provide HEX value without the #'),
-  );
+    $form['eu_cookie_compliance_' . $ln]['popup_position'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Place the pop-up at the top of the website'),
+      '#default_value' => isset($popup_settings['popup_position']) ? $popup_settings['popup_position'] : 0,
+      '#description' => t('By default the pop-up appears at the bottom of the website. Tick this box if you want it to appear at the top'),
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_info'] = array(
+      '#type' => 'text_format',
+      '#title' => t('Popup message - requests consent'),
+      '#default_value' => isset($popup_settings['popup_info']['value']) ? $popup_settings['popup_info']['value'] : '',
+      '#required' => TRUE,
+      '#format' => isset($popup_settings['popup_info']['format']) ? $popup_settings['popup_info']['format'] : NULL,
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_agreed_enabled'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Enable thank you message'),
+      '#default_value' => isset($popup_settings['popup_agreed_enabled']) ? $popup_settings['popup_agreed_enabled'] : 1,
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_hide_agreed'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Clicking hides thank you message'),
+      '#default_value' => isset($popup_settings['popup_hide_agreed']) ? $popup_settings['popup_hide_agreed'] : 0,
+      '#description' => t('Clicking a link hides the thank you message automatically.'),
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_agreed'] = array(
+      '#type' => 'text_format',
+      '#title' => t('Popup message - thanks for giving consent'),
+      '#default_value' => isset($popup_settings['popup_agreed']['value']) ? $popup_settings['popup_agreed']['value'] : '',
+      '#required' => TRUE,
+      '#format' => isset($popup_settings['popup_agreed']['format']) ? $popup_settings['popup_agreed']['format'] : NULL,
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_link'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Privacy policy link'),
+      '#default_value' => isset($popup_settings['popup_link']) ? $popup_settings['popup_link'] : '',
+      '#size' => 60,
+      '#maxlength' => 220,
+      '#required' => TRUE,
+      '#description' => t('Enter link to your privacy policy or other page that will explain cookies to your users. For external links prepend http://'),
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_height'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Popup height in pixels'),
+      '#default_value' => isset($popup_settings['popup_height']) ? $popup_settings['popup_height'] : '',
+      '#size' => 5,
+      '#maxlength' => 5,
+      '#required' => FALSE,
+      '#description' => t('Enter an integer value for a desired height in pixels or leave empty for automatically adjusted height. Do not set this value if you are using responsive theme.'),
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_width'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Popup width in pixels or a percentage value'),
+      '#default_value' => isset($popup_settings['popup_width']) ? $popup_settings['popup_width'] : '100%',
+      '#size' => 5,
+      '#maxlength' => 5,
+      '#required' => TRUE,
+      '#description' => t('Set the width of the popup. This can be either an integer value or percentage of the screen width. For example: 200 or 50%'),
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_delay'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Popup time delay in seconds'),
+      '#default_value' => isset($popup_settings['popup_delay']) ? $popup_settings['popup_delay'] : 1,
+      '#size' => 5,
+      '#maxlength' => 5,
+      '#required' => TRUE,
+    );
+
+    $form_color_picker_type = 'textfield';
+
+    if (module_exists('jquery_colorpicker')) {
+      $form_color_picker_type = 'jquery_colorpicker';
+    }
+
+    $form['eu_cookie_compliance_' . $ln]['popup_bg_hex'] = array(
+      '#type' => $form_color_picker_type,
+      '#title' => t('Background Color'),
+      '#default_value' => isset($popup_settings['popup_bg_hex']) ? check_plain($popup_settings['popup_bg_hex']) : '0779BF', // Garland colors :)
+      '#description' => t('Change the background color of the popup. Provide HEX value without the #'),
+    );
+
+    $form['eu_cookie_compliance_' . $ln]['popup_text_hex'] = array(
+      '#type' => $form_color_picker_type,
+      '#title' => t('Text Color'),
+      '#default_value' => isset($popup_settings['popup_text_hex']) ? check_plain($popup_settings['popup_text_hex']) : 'ffffff',
+      '#description' => t('Change the text color of the popup. Provide HEX value without the #'),
+      // Close div for this language.
+      '#suffix' => '</div>',
+    );
+  }
 
   return system_settings_form($form);
 }
@@ -145,21 +161,25 @@ function eu_cookie_compliance_admin_form($form_state) {
  * Validates form for cookie controll popup.
  */
 function eu_cookie_compliance_admin_form_validate($form, &$form_state) {
-  global $language;
-  $ln = $language-> language;
-  if (!preg_match('/^[1-9][0-9]{0,4}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_height']) && !empty($form_state['values']['eu_cookie_compliance_' . $ln]['popup_height'])) {
-    form_set_error('eu_cookie_compliance_' . $ln . '][popup_height', t('Height must be an integer value .'));
-  }
-  if (!preg_match('/^[1-9][0-9]{0,4}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_delay'])) {
-    form_set_error('eu_cookie_compliance_' . $ln . '][popup_delay', t('Delay must be an integer value.'));
-  }
-  if (!preg_match('/^[1-9][0-9]{0,4}\%?$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_width'])) {
-    form_set_error('eu_cookie_compliance_' . $ln . '][popup_width', t('Width must be an integer or a percentage value.'));
-  }
-  if (!preg_match('/^[0-9a-fA-F]{3,6}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_bg_hex'])) {
-    form_set_error('eu_cookie_compliance_' . $ln . '][popup_bg_hex', t('Backgroung color must be a HEX value (without leading #).'));
-  }
-  if (!preg_match('/^[0-9a-fA-F]{3,6}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_text_hex'])) {
-    form_set_error('eu_cookie_compliance_' . $ln . '][popup_text_hex', t('Text color must be a HEX value (without leading #).'));
+  $languages = $form['languages']['#value'];
+  foreach ($languages as $ln => $lname) {
+    // Don't validate unless language is enabled.
+    if ($form_state['values']['eu_cookie_compliance_' . $ln]['popup_enabled']) {
+      if (!preg_match('/^[1-9][0-9]{0,4}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_height']) && !empty($form_state['values']['eu_cookie_compliance_' . $ln]['popup_height'])) {
+        form_set_error('eu_cookie_compliance_' . $ln . '][popup_height', t('Height must be an integer value .'));
+      }
+      if (!preg_match('/^[1-9][0-9]{0,4}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_delay'])) {
+        form_set_error('eu_cookie_compliance_' . $ln . '][popup_delay', t('Delay must be an integer value.'));
+      }
+      if (!preg_match('/^[1-9][0-9]{0,4}\%?$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_width'])) {
+        form_set_error('eu_cookie_compliance_' . $ln . '][popup_width', t('Width must be an integer or a percentage value.'));
+      }
+      if (!preg_match('/^[0-9a-fA-F]{3,6}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_bg_hex'])) {
+        form_set_error('eu_cookie_compliance_' . $ln . '][popup_bg_hex', t('Backgroung color must be a HEX value (without leading #).'));
+      }
+      if (!preg_match('/^[0-9a-fA-F]{3,6}$/', $form_state['values']['eu_cookie_compliance_' . $ln]['popup_text_hex'])) {
+        form_set_error('eu_cookie_compliance_' . $ln . '][popup_text_hex', t('Text color must be a HEX value (without leading #).'));
+      }
+    }
   }
 }
diff --git a/eu_cookie_compliance.module b/eu_cookie_compliance.module
index 4d5753e..0dcc170 100755
--- a/eu_cookie_compliance.module
+++ b/eu_cookie_compliance.module
@@ -107,17 +107,23 @@ function eu_cookie_compliance_theme() {
 }
 
 /**
- *
  * Retrieves settings from the database for a current language.
  *
- * @global type $language
- * @param type $setting
- * @return type
+ * @param string $setting
+ *   Type of settings to use for the popup instance.
+ * @param string $language_prefix
+ *   Two digit langauge prefix ie 'en' or 'it'.
+ *
+ * @return array
+ *   Settings for the popup instance.
  */
+function eu_cookie_compliance_get_settings($setting = 'all', $language_prefix = '') {
+  if (!$language_prefix) {
+    global $language;
+    $language_prefix = $language->language;
+  }
 
-function eu_cookie_compliance_get_settings($setting = 'all') {
-  global $language;
-  $popup_settings = variable_get('eu_cookie_compliance_' . $language->language, array());
+  $popup_settings = variable_get('eu_cookie_compliance_' . $language_prefix, array());
 
   if ($setting == 'all') {
     return $popup_settings;
