Index: css/uc_multiprice_import.css
===================================================================
--- css/uc_multiprice_import.css	(revision 0)
+++ css/uc_multiprice_import.css	(revision 0)
@@ -0,0 +1,6 @@
+span.uc_multiprice_link {
+	cursor: pointer;
+}
+span.uc_multiprice_link:hover {
+	text-decoration: underline;
+}
\ No newline at end of file
Index: js/uc_multiprice_import.js
===================================================================
--- js/uc_multiprice_import.js	(revision 0)
+++ js/uc_multiprice_import.js	(revision 0)
@@ -0,0 +1,16 @@
+if (Drupal.jsEnabled) {
+  Drupal.behaviors.uc_multiprice_import = function() {
+	$("input[id^='edit-uc-multiprice-countries-']").parent().each( function() {
+	  $(this).find('input').addClass($(this).find('span').text());
+	  $(this).find('span').addClass('uc_multiprice_link').attr('title', Drupal.t('Click to toggle all countries with the same currency.')).click(function(event) {
+		event.preventDefault();
+		if($(this).prev('input').attr('checked')) {
+			$("input[id^='edit-uc-multiprice-countries-']."+$(this).text()).removeAttr('checked');
+		} 
+		else {
+			$("input[id^='edit-uc-multiprice-countries-']."+$(this).text()).attr('checked','checked');
+		}  	  
+	  });
+	});
+  }
+}
\ No newline at end of file
Index: uc_multiprice_import.install
===================================================================
--- uc_multiprice_import.install	(revision 263)
+++ uc_multiprice_import.install	(working copy)
@@ -11,7 +11,7 @@
  * This will install the module, create the neccesary variables and database
  */
 function uc_multiprice_import_install() {
-  drupal_set_message(st('Multiprice import module installed successfully.'));
+  drupal_set_message(st('Multiprice import module installed successfully. For a better interface please install !link.', array('!link' => l('Multi-column checkboxes radios module', 'http://drupal.org/project/multicolumncheckboxesradios'))));
 }
 
 /**
Index: uc_multiprice_import.module
===================================================================
--- uc_multiprice_import.module	(revision 263)
+++ uc_multiprice_import.module	(working copy)
@@ -132,35 +132,33 @@
     // read the file to extract some data we'll be needing
     $delimiter = $form_state['storage']['uc_multiprice_delimiter'];
     $enclosure = $form_state['storage']['uc_multiprice_enclosure'];
-    
-    list($multiprice_type, $multiprice_id) = explode('|', $form_state['values']['uc_multiprice_multiprice']);
-    if ($multiprice_type == 'country') {
-      $multiprice_name = uc_country_get_by_id($multiprice_id);
-       $multiprice_id = ($multiprice_id != uc_store_default_country()) ? $multiprice_id : 0;
-      $country_id = $multiprice_id;
-      $role_id = NULL;
-    } 
-    else {
-      $roles = user_roles();
-      $multiprice_name = $roles[$multiprice_id];
-      $country_id = NULL;
-      $role_id = $multiprice_id;
+  
+  $updates = array();
+  $roles = user_roles();
+  foreach ($form_state['values']['uc_multiprice_roles'] as $k => $v) {
+    if ($v) {
+      $updates['roles'][$roles[$v]] = $v;
     }
-    
+  }
+  foreach ($form_state['values']['uc_multiprice_countries'] as $k => $v) {
+    if ($v) {
+      $updates['countries'][uc_country_get_by_id($v)] = ($v != uc_store_default_country()) ? $v : 0;
+    }
+  }
     $values = array();
-  
+
     if (($handle = fopen($form_state['storage']['file']->filepath, "r")) !== FALSE) {
       // if no field enclosure was selected, fgetcsv() doesn't allow empty value
       if (!$enclosure) {        
         while (($data = fgetcsv($handle, 256, $delimiter)) !== FALSE) {
           if ($nid = $skunid[$data[$skuindex]]) {
             $num = count($data);
-            $value = array('nid' => $nid, 'multiprice_type' => $multiprice_type, 'multiprice_id' => $multiprice_id, 'multiprice_name' => $multiprice_name, 'country_id' => $country_id, 'role_id' => $role_id);
+            $value = array('nid' => $nid, 'updates' => $updates);
             for ($c=0; $c < $num; $c++) {  
               if ($form_state['values']['uc_multiprice_field' . $c] && $form_state['values']['uc_multiprice_field' . $c] != 'sku') {
                 $value[$form_state['values']['uc_multiprice_field' . $c]] = $data[$c];
               }
-            }
+            }      
             $values[] = $value;
           }
         }
@@ -169,7 +167,7 @@
         while (($data = fgetcsv($handle, 256, $delimiter)) !== FALSE) {
           if ($nid = $skunid[$data[$skuindex]]) {
             $num = count($data);
-            $value = array('nid' => $nid, 'multiprice_type' => $multiprice_type, 'multiprice_id' => $multiprice_id, 'multiprice_name' => $multiprice_name, 'country_id' => $country_id, 'role_id' => $role_id);
+            $value = array('nid' => $nid, 'updates' => $updates);
             for ($c=0; $c < $num; $c++) {  
               if ($form_state['values']['uc_multiprice_field' . $c] && $form_state['values']['uc_multiprice_field' . $c] != 'sku') {
                 $value[$form_state['values']['uc_multiprice_field' . $c]] = $data[$c];
@@ -181,13 +179,14 @@
       }
       fclose($handle);
     }
-    //define batch API process.
+
+  //define batch API process.
     $batch = array(
       'operations' => array(
                       array('uc_multiprice_import_process', array($values))
                       ),
       'finished' => 'uc_multiprice_import_finished',
-      'title' => t('Importing prices for country or role: @multiprice', array('@multiprice' => $multiprice_name)),
+      'title' => t('Importing prices for the following countries and/or roles: @multiprice', array('@multiprice' => implode(', ', array_merge(array_keys((array)$updates['countries']), array_keys((array)$updates['roles']))))),
       'init_message' => t('Starting...'),
       'progress_message' => t('Processing price imports and/or updates...'),
       'error_message' => t('An error occurred and some or all of the batch has failed.'),
@@ -204,7 +203,7 @@
 function uc_multiprice_import_process($items = array(), &$context) {
   
   if (!isset($context['sandbox']['progress'])) {
-    $context['results']['multiprice_name'] = $items[0]['multiprice_name'];
+    $context['results']['multiprice_name'] = implode(', ', array_merge(array_keys((array)$items[0]['updates']['countries']), array_keys((array)$items[0]['updates']['roles'])));
     $context['sandbox']['progress'] = 0;
     $context['sandbox']['max'] = count($items);
   }
@@ -214,7 +213,7 @@
   // Here we actually perform our processing on the current node.
   $node = node_load($node_update['nid'], NULL, TRUE);
   
-  // trun objects into arrays...
+  // turn objects into arrays...
   // the uc_multiprice nodeapi save hook needs arrays
   foreach ((array)$node->multiprice['country'] as $k => $v) {
     $node->multiprice['country'][$k] = (array)$v;
@@ -224,18 +223,28 @@
   }  
   $node->multiprice['multiprices'] = $node->multiprice;
 
-  if ($node_update['multiprice_id']) {
-    $node->multiprice['multiprices'][$node_update['multiprice_type']][$node_update['multiprice_id']]['country_id'] = $node_update['country_id'];  
-    $node->multiprice['multiprices'][$node_update['multiprice_type']][$node_update['multiprice_id']]['list_price'] = floatval($node_update['list_price']);
-    $node->multiprice['multiprices'][$node_update['multiprice_type']][$node_update['multiprice_id']]['cost'] = floatval($node_update['cost']);
-    $node->multiprice['multiprices'][$node_update['multiprice_type']][$node_update['multiprice_id']]['sell_price'] = floatval($node_update['sell_price']);
-    $node->multiprice['multiprices'][$node_update['multiprice_type']][$node_update['multiprice_id']]['role_id'] = $node_update['role_id'];  
+  foreach ((array)$node_update['updates']['roles'] as $k => $v) {
+  $node->multiprice['multiprices']['role'][$v]['country_id'] = NULL;  
+    $node->multiprice['multiprices']['role'][$v]['list_price'] = floatval($node_update['list_price']);
+    $node->multiprice['multiprices']['role'][$v]['cost'] = floatval($node_update['cost']);
+    $node->multiprice['multiprices']['role'][$v]['sell_price'] = floatval($node_update['sell_price']);
+    $node->multiprice['multiprices']['role'][$v]['role_id'] = $v;  
   }
+  foreach ((array)$node_update['updates']['countries'] as $k => $v) {
+  // if !store default country
+  if ($v) {
+    $node->multiprice['multiprices']['country'][$v]['country_id'] = $v;  
+      $node->multiprice['multiprices']['country'][$v]['list_price'] = floatval($node_update['list_price']);
+      $node->multiprice['multiprices']['country'][$v]['cost'] = floatval($node_update['cost']);
+      $node->multiprice['multiprices']['country'][$v]['sell_price'] = floatval($node_update['sell_price']);
+      $node->multiprice['multiprices']['country'][$v]['role_id'] = NULL;  
+  }
   else {
     $node->list_price = floatval($node_update['list_price']);
-    $node->cost = floatval($node_update['cost']);
-    $node->sell_price = floatval($node_update['sell_price']);
+      $node->cost = floatval($node_update['cost']);
+      $node->sell_price = floatval($node_update['sell_price']);
   }
+  }
 
   node_save($node);
 
@@ -284,6 +293,8 @@
 }
 
 function uc_multiprice_import_step_2($form_state) {
+  drupal_add_js(drupal_get_path('module', 'uc_multiprice_import') .'/js/uc_multiprice_import.js', 'module', 'header');  
+  drupal_add_css(drupal_get_path('module', 'uc_multiprice_import') .'/css/uc_multiprice_import.css', 'module', 'screen');
   // read the file to extract some data we'll be needing
   $delimiter = $form_state['values']['uc_multiprice_delimiter'];
   $enclosure = $form_state['values']['uc_multiprice_enclosure'];
@@ -312,25 +323,28 @@
     fclose($handle);
   }
 
-  $multiprices = array();
+  $roles = array();
   // add the enabled roles to be used as options
   $enabled_roles = array_filter(variable_get('uc_multiprice_roles', array()));
-  $roles = user_roles();
+  $user_roles = user_roles();
   if (variable_get('role_weights_reorder_forms', FALSE)) {
-    uksort($roles, '_role_weights_rid_compare');
+    uksort($user_roles, '_role_weights_rid_compare');
   }
   foreach ($enabled_roles as $k => $v) {
-    $multiprices['role|' . $k] = $roles[$k];
+    $roles[$k] = $user_roles[$k];
   }
   // load the enabled countries to be used as options
   $uc_store_default_country = uc_store_default_country();
-  $result = db_query("SELECT country_id, country_name FROM {uc_countries} WHERE version > 0 ORDER BY country_name ASC");
+  
+  $result = db_query("SELECT country.country_id, country.country_name, currency.currency_code FROM {uc_countries} as country LEFT JOIN {uc_multiprice_currencies} AS currency ON country.country_id = currency.country_id WHERE country.version > 0 ORDER BY country.country_name ASC");
+  
+  $countries = array();
   while ($country = db_fetch_object($result)) {
     if ($country->country_id == $uc_store_default_country) {
-      $multiprices['country|' . $country->country_id] = $country->country_name . ' (' . t('store default country') . ')';
+      $countries[$country->country_id] = $country->country_name . ' (<span>' . $country->currency_code . '</span>) <strong>' . t('store default country') . '<strong>';
     }
     else {
-      $multiprices['country|' . $country->country_id] = $country->country_name;
+     $countries[$country->country_id] = $country->country_name . ' (<span>' . $country->currency_code . '</span>)';
     }
   }
   
@@ -368,14 +382,24 @@
       '#options'  => array(t('No'), t('Yes')),
       '#required'  => TRUE
     );
-    
-    $form['uc_multiprice_admin_import']['uc_multiprice_multiprice'] = array(
-      '#type'  => 'select',
-      '#title'  => t('Country or role'),
-      '#description'  => t('Please select the country or role for which to import the prices.'),
-      '#options' => (array)$multiprices,
-      '#required'  => TRUE
+  
+  $form['uc_multiprice_admin_import']['uc_multiprice_countries'] = array(
+      '#type'  => 'checkboxes',
+      '#title'  => t('Countries'),
+      '#description'  => t('Please select countries for which to import the prices. Click a currency behind a country to toggle all countries with the same currency.'),
+      '#options' => (array)$countries,
+    '#multicolumn' => array('width' => 3,
+                'row-major' => FALSE)
     );
+  
+    $form['uc_multiprice_admin_import']['uc_multiprice_roles'] = array(
+      '#type'  => 'checkboxes',
+      '#title'  => t('Roles'),
+      '#description'  => t('Please select roles for which to import the prices.'),
+      '#options' => (array)$roles,
+    '#multicolumn' => array('width' => 3,
+                'row-major' => FALSE)
+    );
     
   $form['import'] = array(
     '#type' => 'submit',
