Index: trunk/themes/smartpocket/template/footer.tpl
===================================================================
--- trunk/themes/smartpocket/template/footer.tpl	(revision 13544)
+++ trunk/themes/smartpocket/template/footer.tpl	(revision 13545)
@@ -15,4 +15,7 @@
 </div>
 {/if}
+{footer_script require='jquery'}
+document.cookie = 'screen_size='+jQuery(document).width()+'x'+jQuery(document).height()+';path={$COOKIE_PATH}';
+{/footer_script}
 {get_combined_scripts load='footer'}
 </div><!-- /page -->
Index: trunk/themes/smartpocket/template/mainpage_categories.tpl
===================================================================
--- trunk/themes/smartpocket/template/mainpage_categories.tpl	(revision 13544)
+++ trunk/themes/smartpocket/template/mainpage_categories.tpl	(revision 13545)
@@ -1,9 +1,7 @@
-{define_derivative name='derivative_params_square' type='square'}
-
 <ul data-role="listview" data-inset="true">
 {foreach from=$category_thumbnails item=cat}
 	<li>
 		<a href="{$cat.URL}">
-		<img src="{$pwg->derivative_url($derivative_params_square, $cat.representative.src_image)}">
+		<img src="{$pwg->derivative_url($thumbnail_derivative_params, $cat.representative.src_image)}">
     <h3>{$cat.NAME}</h3>
 		<p class="Nb_images">{$cat.CAPTION_NB_IMAGES}</p>
Index: trunk/themes/smartpocket/template/thumbnails.tpl
===================================================================
--- trunk/themes/smartpocket/template/thumbnails.tpl	(revision 13544)
+++ trunk/themes/smartpocket/template/thumbnails.tpl	(revision 13545)
@@ -6,13 +6,10 @@
 {combine_script id='thumbnails.loader' path='themes/default/js/thumbnails.loader.js' require='jquery.ajaxmanager' load='footer'}
 
-{define_derivative name='derivative_params_square' type='square'}
-{define_derivative name='derivative_params_large' type='large'}
-
 <ul class="thumbnails">
 {foreach from=$thumbnails item=thumbnail}{strip}
-{assign var=derivative value=$pwg->derivative($derivative_params_square, $thumbnail.src_image)}
+{assign var=derivative value=$pwg->derivative($thumbnail_derivative_params, $thumbnail.src_image)}
 {if isset($page_selection[$thumbnail.id])}
   <li>
-    <a href="{$pwg->derivative_url($derivative_params_large, $thumbnail.src_image)}" rel="external">
+    <a href="{$pwg->derivative_url($picture_derivative_params, $thumbnail.src_image)}" rel="external">
      <img {if !$derivative->is_cached()}data-{/if}src="{$derivative->get_url()}" alt="{$thumbnail.TN_ALT}">
     </a>
@@ -20,5 +17,5 @@
 {else}
   <li style="display:none;">
-    <a href="{$pwg->derivative_url($derivative_params_large, $thumbnail.src_image)}" rel="external"></a>
+    <a href="{$pwg->derivative_url($picture_derivative_params, $thumbnail.src_image)}" rel="external"></a>
   </li>
 {/if}
Index: trunk/themes/smartpocket/themeconf.inc.php
===================================================================
--- trunk/themes/smartpocket/themeconf.inc.php	(revision 13544)
+++ trunk/themes/smartpocket/themeconf.inc.php	(revision 13545)
@@ -13,4 +13,8 @@
 );
 
+// Redirect if page is not compatible with mobile theme
+if (!in_array(script_basename(), array('index', 'register', 'profile', 'identification')))
+  redirect(duplicate_index_url());
+
 //Retrive all pictures on thumbnails page
 add_event_handler('loc_index_thumbnails_selection', 'sp_select_all_thumbnails');
@@ -25,3 +29,22 @@
 }
 
+// Get better derive parameters for screen size
+if (!empty($_COOKIE['screen_size']))
+{
+  $screen_size = explode('x', $_COOKIE['screen_size']);
+  $derivative_params = new ImageStdParams;
+  $derivative_params->load_from_db();
+  $type = IMG_LARGE;
+
+  foreach ($derivative_params->get_all_type_map() as $type => $map)
+  {
+    if (max($map->sizing->ideal_size) >= max($screen_size) and min($map->sizing->ideal_size) >= min($screen_size))
+      break;
+  }
+  pwg_set_session_var('sp_picture_deriv', $type);
+}
+
+$this->assign('picture_derivative_params', ImageStdParams::get_by_type(pwg_get_session_var('sp_picture_deriv', IMG_LARGE)));
+$this->assign('thumbnail_derivative_params', ImageStdParams::get_by_type(IMG_SQUARE));
+
 ?>
