diff --git a/app/assets/javascripts/admin.js b/app/assets/javascripts/admin.js
index 98be95f..c42ce13 100644
--- a/app/assets/javascripts/admin.js
+++ b/app/assets/javascripts/admin.js
@@ -1,7 +1,5 @@
 /*
-*= require jquery.js
 
-*= require jquery_ujs
 
 
 
@@ -38,60 +36,65 @@ function init_portfolio_images(){
 	});
 }
 
+function init_markdown(){
+$("textarea.markdown").each(function(){
+	var r;
+	var ed;
+		
+		
+		
+	r = Math.floor((Math.random()*1000)+1);
+	
+	$(this).data("id", r);
+	$(this).removeClass("markdown");
+
+	$(this).attr("id", r+"-textarea");
+	$(this).after('<p style="height:400px;"></p>');
+	$(this).after('<div id="'+r+'-editor" class="ace_editor">bla</div>');
+	
+		
+		
+		
+	editor[r] = ace.edit(r+"-editor");
+	editor[r].setTheme("ace/theme/textmate");
+	editor[r].getSession().setMode("ace/mode/markdown");
+		
+	editor[r].setPrintMarginColumn(0);
+		
+	editor[r].session.setUseWrapMode(true);
+	
+		
+		
+		
+		
+		
+	editor[r].setHighlightActiveLine(false);
+		
+	editor[r].renderer.setShowGutter(false);
+	editor[r].renderer.setShowPrintMargin(false);
+		
+	editor[r].setFontSize("14px");	
+	
+		
+
+	var textarea = $('#'+r+'-textarea').hide();
+	editor[r].getSession().setValue(textarea.val());
+	
+	editor[r].getSession().on('change', function(){
+
+	textarea.val(editor[r].getSession().getValue());
+
+	
+	});
+		
+		
+});
+}
+
+
 $(document).ready(function(){
 	
-	$("textarea.markdown").each(function(){
-		var r;
-		var ed;
-		
-		
-		
-		r = Math.floor((Math.random()*1000)+1);
-	
-		$(this).data("id", r);
-
-
-		$(this).attr("id", r+"-textarea");
-		$(this).after('<div id="'+r+'-editor" class="ace_editor">bla</div>');
-		
-		
-		
-		
-		editor[r] = ace.edit(r+"-editor");
-		editor[r].setTheme("ace/theme/textmate");
-		editor[r].getSession().setMode("ace/mode/markdown");
-		
-		editor[r].setPrintMarginColumn(0);
-		
-		editor[r].session.setUseWrapMode(true);
-	
-		
-		
-		
-		
-		
-		editor[r].setHighlightActiveLine(false);
-		
-		editor[r].renderer.setShowGutter(false);
-		editor[r].renderer.setShowPrintMargin(false);
-		
-		editor[r].setFontSize("14px");	
-	
-		
-
-		var textarea = $('#'+r+'-textarea').hide();
-		editor[r].getSession().setValue(textarea.val());
-	
-		editor[r].getSession().on('change', function(){
-
-		textarea.val(editor[r].getSession().getValue());
-
-	
-		});
-		
-		
-	});
-	
+	init_markdown();
 	//upload
 	
 	drop = $('.portfolio .images');
diff --git a/app/assets/stylesheets/admin.css.scss b/app/assets/stylesheets/admin.css.scss
index 90c1361..692b2de 100644
--- a/app/assets/stylesheets/admin.css.scss
+++ b/app/assets/stylesheets/admin.css.scss
@@ -122,23 +122,8 @@ body {
 	
 }
 
-.ace_editor{
-	height:400px;
-	width:57%;
-	border:solid 1px #C9C9C9;
 
 
-	.ace_scroller{
-
-
-		background:transparent !important;
-	}
-
-
-
-
-}
-
 .page_form{	
 	
 	.form{
diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss
index f9048fa..4802607 100644
--- a/app/assets/stylesheets/application.css.scss
+++ b/app/assets/stylesheets/application.css.scss
@@ -16,6 +16,36 @@ body{
 	font-family:Palatino, Georgia;
 	
 	
+	#admin_over{
+	
+	.ace_editor{
+		height:400px;
+		width:57%;
+		border:solid 1px #C9C9C9;
+
+
+		.ace_scroller{
+
+
+			background:transparent !important;
+		}
+
+
+
+
+	}
+	position:fixed;
+	top:0px;
+	left:0px;
+	z-index:3;
+	
+	#portfolio_form{
+	background:rgba(250,250,250, 0.9);
+	padding:1em;
+	}
+	
+	}
+	
 	#top{
 	background:#383838;
 	color:white;
@@ -27,6 +57,8 @@ body{
 	
 	}
 	
+	
+	
 	#small_index{
 		position:fixed;
 		left:252px;
@@ -106,56 +138,52 @@ width:100px;
 .portfolio{
 
 
-.intro{
-text-align:center;
-max-width:70%;
-margin:auto;
-*{
-
-text-align:center;
-}
-}
-	.fileupload{
-	display:none;
-	
+	.intro{
+		text-align:center;
+		max-width:70%;
+		margin:auto;
+		*{
+			text-align:center;
+		}
 	}
+	
+	.fileupload{
+		display:none;
+	}
+	
 	.images{
 		min-height:400px;
 		text-align:center;
-	
 		font-family:courier;
-		.portfolio_image_block{
+		
+		.image_block{
 			display:inline-block;
 			max-width:90%;
-			
-		
 			margin:auto;
 			margin-top:2em;
 			position:relative;
 
 			.image{
-				
 				max-height:90%;
 				max-width:100%;
-				//box-shadow: #AFAFAF 0px 0px 5px;
-
+			
 			}
+			
 			.title{
 				text-align:left;
 				color:gray;
+				
 				.exifs{
 					position:absolute;
 					right:0;
 					top:0px;
 					width:110%;
-					
 					font-size:0.6em;
+					text-align:right;
 					
 					@include transform-origin(top, right); 
 					@include rotate(-90deg);
 					
-					text-align:right;
-					
 					&:hover{
 					font-size:1em;
 					}
@@ -177,12 +205,18 @@ text-align:center;
 				position:absolute;
 				top:0px;
 				left:0px;
+				bottom:1em;
+				width : 200px;		
+				background:rgba(250,250,250, 0.9);
+				overflow:auto;
+				z-index:2;
 			
 			}
+		
 			&:hover{
-			.admin{
-			display:block;
-			}
+				.admin{
+					display:block;
+				}
 			
 			}
 
@@ -209,7 +243,7 @@ text-align:center;
 				
 				max-height:85%;
 				max-width:100%;
-				//box-shadow: #AFAFAF 0px 0px 5px;
+				
 
 			}
 
diff --git a/app/controllers/admin/portfolios_controller.rb b/app/controllers/admin/portfolios_controller.rb
deleted file mode 100644
index 8d1f34b..0000000
--- a/app/controllers/admin/portfolios_controller.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-class Admin::PortfoliosController < ApplicationController
-  layout "admin"
-  
-  before_filter :authenticate_admin!
-  
-  def index
-    
-    @portfolios = Portfolio.all
-  end
-
-
-  def show
-    @portfolio = Portfolio.find(params[:id])
-
-  end
-
-
-  def new
-    @portfolio = Portfolio.new
-  
-  end
-
-  def edit
-    @portfolio = Portfolio.find(params[:id])
-  
-  end
-
-  def create
-  	@portfolio = Portfolio.new(params[:portfolio])
-    
-    if @portfolio.save
-      redirect_to admin_portfolios_path
-          
-  	else
-  		render :action => "new" 
-  	end
-  end
-
-  def update
-  	@portfolio = Portfolio.find(params[:id])
-    
-    if @portfolio.update_attributes(params[:portfolio])
-      redirect_to admin_portfolios_path
-          
-  	else
-  		render :action => "edit" 
-  	end
-    
-  end
-  		
-
-
-  def destroy
-  	@portfolio = Portfolio.find(params[:id])
-	  @portfolio.destroy
-    redirect_to admin_portfolios_path
-
-  end
-
-
-
-end
diff --git a/app/controllers/portfolios_controller.rb b/app/controllers/portfolios_controller.rb
index 414f716..1be818c 100644
--- a/app/controllers/portfolios_controller.rb
+++ b/app/controllers/portfolios_controller.rb
@@ -1,21 +1,25 @@
 class PortfoliosController < ApplicationController
 
+
+  before_filter :authenticate_admin!, :except => [:index, :show] 
+  
+  
   def index
     @index_images = PortfolioImage.order("Created_at DESC").limit(20)
   end
   
   def show
-    @slug = params[:slug]
+    @slug = params[:id]
     
-    if params[:slug]
-      @portfolio = Portfolio.find_by_slug(params[:slug])
+    if params[:id]
+      @portfolio = Portfolio.find_by_slug(params[:id])
       
-      @images = @portfolio.images.page(params[:page]).per(1)
+      @images = @portfolio.images.page(params[:page]).per(@portfolio.content_type? ? @portfolio.content_type.to_i : 1)
       
       
-      @prev_page = @images.current_page.to_i > 1 ? @images.current_page.to_i-1 : @images.total_count
+      @prev_page = @images.current_page.to_i > 1 ? @images.current_page.to_i-1 : @images.num_pages
       
-      @next_page = @images.current_page.to_i < @images.total_count ? @images.current_page.to_i+1 : 1
+      @next_page = @images.current_page.to_i < @images.num_pages ? @images.current_page.to_i+1 : 1
       
       
       @next_image = @portfolio.images.page(@next_page).per(1).first
@@ -26,4 +30,47 @@ class PortfoliosController < ApplicationController
     end
     
   end
+  
+  
+  def new
+    @portfolio = Portfolio.new
+  
+  end
+
+  def edit
+    @portfolio = Portfolio.find(params[:id])
+  
+  end
+
+  def create
+  	@portfolio = Portfolio.new(params[:portfolio])
+    
+    if @portfolio.save
+     
+  	else
+  		render :action => "new" 
+  	end
+  end
+
+  def update
+  	@portfolio = Portfolio.find(params[:id])
+    
+    if @portfolio.update_attributes(params[:portfolio])
+      
+          
+  	else
+  		render :action => "edit" 
+  	end
+    
+  end
+  		
+
+
+  def destroy
+  	@portfolio = Portfolio.find(params[:id])
+	  @portfolio.destroy
+    
+  end
+  
+  
 end
diff --git a/app/models/portfolio_image.rb b/app/models/portfolio_image.rb
index e8dcd9b..7f97df4 100644
--- a/app/models/portfolio_image.rb
+++ b/app/models/portfolio_image.rb
@@ -9,6 +9,14 @@ class PortfolioImage < ActiveRecord::Base
   
   scope :after, lambda {|time| {:conditions => ["shoot_at > ?", time]}}
   
+  def width
+    self.photo.geometry[:width]
+  end
+  
+  def height
+    self.photo.geometry[:height]
+  end
+  
 	def rotate(degrees=90)
 		versions = [self.photo.path, self.photo.large.path, self.photo.thumb.path]
 		
diff --git a/app/uploaders/image_uploader.rb b/app/uploaders/image_uploader.rb
index 024bb1a..c834711 100644
--- a/app/uploaders/image_uploader.rb
+++ b/app/uploaders/image_uploader.rb
@@ -17,6 +17,13 @@ class ImageUploader < CarrierWave::Uploader::Base
   def geometry
       @geometry ||= get_geometry
     end
+    
+  def get_geometry
+      if @file
+        img = ::Magick::Image::read(@file.file).first
+        geometry = { width: img.columns, height: img.rows }
+      end
+    end
   
   # Override the directory where uploaded files will be stored.
   # This is a sensible default for uploaders that are meant to be mounted:
diff --git a/app/views/admin/portfolio_images/_form.haml b/app/views/admin/portfolio_images/_form.haml
deleted file mode 100644
index 72f2560..0000000
--- a/app/views/admin/portfolio_images/_form.haml
+++ /dev/null
@@ -1,8 +0,0 @@
-= semantic_form_for [:admin, @portfolio_image], :remote => true do |f| 
-	=f.inputs :name => "Basic" do 
-		= f.input :title, :label => "Titre", :input_html => { :onchange => "$(this).closest('form').submit();", :onkeyup => "$(this).closest('form').submit();"}
-		= f.input :portfolios, :collection => Portfolio.all, :as => :check_boxes, :input_html => { :onchange => "$(this).closest('form').submit();"}
-	
-	=f.submit "Sauvegarder"	
-			
-	
\ No newline at end of file
diff --git a/app/views/admin/portfolio_images/destroy.js.erb b/app/views/admin/portfolio_images/destroy.js.erb
index 722d778..f774cfb 100644
--- a/app/views/admin/portfolio_images/destroy.js.erb
+++ b/app/views/admin/portfolio_images/destroy.js.erb
@@ -1 +1 @@
-$('#portfolio_image_<%=@portfolio_image.id%>').remove();
\ No newline at end of file
+$('#image_<%=@portfolio_image.id%>').remove();
\ No newline at end of file
diff --git a/app/views/admin/portfolio_images/edit.js.erb b/app/views/admin/portfolio_images/edit.js.erb
index 4b14807..77902c5 100644
--- a/app/views/admin/portfolio_images/edit.js.erb
+++ b/app/views/admin/portfolio_images/edit.js.erb
@@ -1 +1 @@
-$('#portfolio_image_form_<%= @portfolio_image.id %>').replaceWith("<%= escape_javascript(render(:partial => 'form'))%>");
\ No newline at end of file
+$('#image_form_<%= @portfolio_image.id %>').replaceWith("<%= escape_javascript(render(:partial => 'form'))%>");
\ No newline at end of file
diff --git a/app/views/admin/portfolio_images/rotate.js.erb b/app/views/admin/portfolio_images/rotate.js.erb
index ee6ea93..d573ff0 100644
--- a/app/views/admin/portfolio_images/rotate.js.erb
+++ b/app/views/admin/portfolio_images/rotate.js.erb
@@ -1,2 +1,2 @@
 
-$('#portfolio_image_<%= @portfolio_image.id %>').replaceWith("<%= escape_javascript(render(@portfolio_image))%>");
\ No newline at end of file
+$('#image_<%= @portfolio_image.id %>').replaceWith("<%= escape_javascript(render(@portfolio_image))%>");
\ No newline at end of file
diff --git a/app/views/admin/portfolios/_form.haml b/app/views/admin/portfolios/_form.haml
deleted file mode 100644
index 3731797..0000000
--- a/app/views/admin/portfolios/_form.haml
+++ /dev/null
@@ -1,17 +0,0 @@
-= semantic_form_for [:admin, @portfolio] do |f| 
-	=f.inputs :name => "Basic" do 
-		
-		=f.select :content_type, [1,2]
-		= f.input :title, :label => "Titre"
-		= f.input :slug, :label => "Slug"
-		= f.input :description, :label => "Description"
-		= f.input :keywords, :label => "Mot clefs"
-	
-	.page_form
-		=f.text_area :markdown_content, :class => "markdown"	
-		%p{:style => "height:400px;"}
-	
-		
-	=f.submit "Sauvegarder"	
-			
-	
\ No newline at end of file
diff --git a/app/views/admin/portfolios/_portfolio.haml b/app/views/admin/portfolios/_portfolio.haml
deleted file mode 100644
index 3aa37a9..0000000
--- a/app/views/admin/portfolios/_portfolio.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-%tr.portfolio#portfolio{:id => portfolio.id}
-
-	%td=portfolio.title
-	%td= link_to(portfolio.path,portfolio.path)
-	
-
-	%td
-		=link_to "voir", [:admin, portfolio]
-		=link_to "modifier", edit_admin_portfolio_path(portfolio)
-		=link_to "supprimer", [:admin, portfolio], :method => :delete, :confirm => "Voulez-vous vraiment supprimer cette portfolio ?"
\ No newline at end of file
diff --git a/app/views/admin/portfolios/edit.haml b/app/views/admin/portfolios/edit.haml
deleted file mode 100644
index 038bb12..0000000
--- a/app/views/admin/portfolios/edit.haml
+++ /dev/null
@@ -1 +0,0 @@
-=render :partial => "form"
\ No newline at end of file
diff --git a/app/views/admin/portfolios/index.haml b/app/views/admin/portfolios/index.haml
deleted file mode 100644
index 34b466f..0000000
--- a/app/views/admin/portfolios/index.haml
+++ /dev/null
@@ -1,13 +0,0 @@
-=link_to "nouveau portfolio", new_admin_portfolio_path, :class => "button", :style => "margin:1em 0em;float:right"
-
-%h1 Liste des portfolios
-
-%table
-	%tr
-		%th{:style => "width:50px;"}
-		%th Nom
-		%th Messages
-		%th Topics
-		
-		%th Actions
-	=render @portfolios
\ No newline at end of file
diff --git a/app/views/admin/portfolios/new.haml b/app/views/admin/portfolios/new.haml
deleted file mode 100644
index 038bb12..0000000
--- a/app/views/admin/portfolios/new.haml
+++ /dev/null
@@ -1 +0,0 @@
-=render :partial => "form"
\ No newline at end of file
diff --git a/app/views/admin/portfolios/show.haml b/app/views/admin/portfolios/show.haml
deleted file mode 100644
index 3975c26..0000000
--- a/app/views/admin/portfolios/show.haml
+++ /dev/null
@@ -1,32 +0,0 @@
-.portfolio
-	%h1=@portfolio.title
-	=markdown @portfolio.markdown_content
-
-	.portfolio_images
-
-	
-		
-	
-		%form.fileupload{:action => admin_portfolio_images_path(:portfolio_id => @portfolio.id), :enctype => "multipart/form-data", :method => "POST"}
-	
-			.upload
-				.progress
-					.bar{:style => "height:1em;"}
-					
-				%button.add_files ajouter des photos
-	
-				%input{:multiple => "", :name => "portfolio_image[photo]", :type => "file", :style => "float:right;"}
-			
-			
-				%br
-			
-				%br
-				= hidden_field_tag "portfolio_image[portfolio_ids][]", @portfolio.id
-			
-				
-
-		:javascript
-			init_portfolio_images();
-
-	%br
-	.images=render @portfolio.images
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 3458898..ad7a45b 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -21,7 +21,7 @@
 	
 
 	%body
-	
+		
 		#left
 			
 			
@@ -32,12 +32,10 @@
 			
 				
 				%h4 Portfolios
+				=link_to "nouveau portfolio", new_portfolio_path, :remote => true if current_admin
 				
-				%ul
-					-Portfolio.all.each do |p|
-					
-						%li=link_to p.title, p.path
-						
+				%ul.portfolios_links
+					=render Portfolio.order(:title)
 				
 				=link_to raw("<h4>Contact</h4>")
 				
@@ -48,3 +46,8 @@
 		=render :partial => "portfolios/pagination"
 				
 		#main= yield 
+		
+		-if current_admin
+			#admin_over
+				
+			
diff --git a/app/views/portfolio_images/_portfolio_image.haml b/app/views/portfolio_images/_portfolio_image.haml
new file mode 100644
index 0000000..06ae29e
--- /dev/null
+++ b/app/views/portfolio_images/_portfolio_image.haml
@@ -0,0 +1,41 @@
+-if image.photo?
+
+		
+	#image.image_block{:id => image.id, :style => "margin-top:"+(image.ratio > 1 ? "3%" : "0.5%")+";"}
+		
+	
+	
+		=image_tag image.photo.url, :class => "image"
+		%br
+		
+		%span.title
+			-if current_admin
+				= form_for [:admin, image], :remote => true do |f| 
+					= f.text_field :title, :onchange => "$(this).closest('form').submit();", :onkeyup => "$(this).closest('form').submit();", :style => "display:inline-block !important;width:auto;font-family:courier;", :size => "n"
+			-else
+				=image.title
+			
+			="-"
+			=l image.shoot_at, :format => :date if image.shoot_at
+			-if image.exif
+				.exifs
+					=image.exif.model
+					="-"
+					="f "+image.exif.f_number.to_f.to_s
+					="-"
+					=image.exif.exposure_time.to_s+" s"
+					="-"
+					=image.exif.iso_speed_ratings.to_s+" iso"
+					="-"
+					© Nicolas Bally
+	
+		-if current_admin
+			.admin
+				#image_form{:id => image.id}
+					=render :partial => "image_form", :locals => {:image => image}
+			
+				
+	
+	%br
+	
+	
diff --git a/app/views/portfolios/_form.haml b/app/views/portfolios/_form.haml
new file mode 100644
index 0000000..4a2b9f9
--- /dev/null
+++ b/app/views/portfolios/_form.haml
@@ -0,0 +1,18 @@
+#portfolio_form
+
+	= semantic_form_for @portfolio, :remote => true do |f| 
+		=f.inputs :name => "Basic" do 
+		
+			= f.input :content_type, :label => "nbr images /pages :"
+			= f.input :title, :label => "Titre"
+			= f.input :slug, :label => "Slug"
+			= f.input :description, :label => "Description"
+			= f.input :keywords, :label => "Mot clefs"
+	
+	
+			=f.text_area :markdown_content, :class => "markdown"	
+		
+		=f.submit "Sauvegarder"	
+		=link_to "fermer", "#", :onclick => "$('#admin_over').html('');return false;"
+			
+	
\ No newline at end of file
diff --git a/app/views/portfolios/_image_form.haml b/app/views/portfolios/_image_form.haml
new file mode 100644
index 0000000..eb74e28
--- /dev/null
+++ b/app/views/portfolios/_image_form.haml
@@ -0,0 +1,10 @@
+= semantic_form_for [:admin, image], :remote => true do |f| 
+	=f.inputs :name => "Basic" do 
+		= f.input :title, :label => "Titre", :input_html => { :onchange => "$(this).closest('form').submit();", :onkeyup => "$(this).closest('form').submit();"}
+		= f.input :portfolios, :collection => Portfolio.all, :as => :check_boxes, :input_html => { :onchange => "$(this).closest('form').submit();"}
+	
+	=f.submit "Sauvegarder"	
+			
+= link_to i(:rotate, :gray_light, "12x14"), rotate_admin_portfolio_image_path(:id => image.id, :manager => params[:manager], :multiple => params[:multiple]), :remote => true
+= link_to i(:rotate_right, :gray_light, "12x14"), rotate_admin_portfolio_image_path(:id => image.id, :manager => params[:manager], :multiple => params[:multiple], :direction => :right), :remote => true
+=link_to "supprimer", [:admin, image], :method => :delete, :confirm => "Voulez-vous vraiment supprimer cette image ?", :remote => true
\ No newline at end of file
diff --git a/app/views/portfolios/_pagination.html.haml b/app/views/portfolios/_pagination.html.haml
index c88e30b..c706efb 100644
--- a/app/views/portfolios/_pagination.html.haml
+++ b/app/views/portfolios/_pagination.html.haml
@@ -1,6 +1,6 @@
 -if @images 
 	#pagination
-		
+	
 		-if @next_image and @prev_image
 			-url_1 = @next_image.photo.url+"?"+@next_image.updated_at.to_s.to_slug
 			-url_2 =@prev_image.photo.url+"?"+@next_image.updated_at.to_s.to_slug
@@ -16,7 +16,7 @@
 		
 			</script>
 			
-		%span{:style => "position:relative;top:-0.5em;position:absolute;top:20px;left:0px;right:10px;text-align:center;"}="#"+@images.current_page.to_s+"/"+@images.total_count.to_s
+		%span{:style => "position:relative;top:-0.5em;position:absolute;top:20px;left:0px;right:10px;text-align:center;"}="#"+@images.current_page.to_s+"/"+@images.num_pages.to_s
 		=link_to "<", portfolio_path(:slug => @portfolio.slug, :page => @prev_page, :format => :js), :style => "font-size:3em;position:absolute;bottom:10px;right:60px;", :remote => true, :id => "prev"
 		
 		=link_to ">", portfolio_path(:slug => @portfolio.slug, :page => @next_page, :format => :js), :style => "font-size:4em;position:absolute;bottom:10px;right:15px;", :remote => true, :id => "next"
\ No newline at end of file
diff --git a/app/views/portfolios/_portfolio.haml b/app/views/portfolios/_portfolio.haml
new file mode 100644
index 0000000..c26fb73
--- /dev/null
+++ b/app/views/portfolios/_portfolio.haml
@@ -0,0 +1,6 @@
+%li#portfolio_line{:id => portfolio.id}
+	=link_to portfolio.title, portfolio.path
+	
+	-if current_admin
+		=link_to "m", edit_portfolio_path(portfolio, :format => "js"), :remote => true
+		=link_to "s", portfolio_path(portfolio, :format => "js"), :method => :delete, :confirm => "Voulez-vous vraiment supprimer cette portfolio ?", :remote => true
\ No newline at end of file
diff --git a/app/views/portfolios/_portfolio_image.haml b/app/views/portfolios/_portfolio_image.haml
deleted file mode 100644
index 01a504c..0000000
--- a/app/views/portfolios/_portfolio_image.haml
+++ /dev/null
@@ -1,42 +0,0 @@
--if portfolio_image.photo?
-
-		
-	#portfolio_image.portfolio_image_block{:id => portfolio_image.id, :style => "margin-top:"+(portfolio_image.ratio > 1 ? "3%" : "0.5%")+";"}
-		
-	
-	
-		=image_tag portfolio_image.photo.url+"?"+portfolio_image.updated_at.to_s.to_slug, :class => "image"
-		%br
-		
-		%span.title
-			-if current_admin
-				= form_for [:admin, portfolio_image], :remote => true do |f| 
-					= f.text_field :title, :onchange => "$(this).closest('form').submit();", :onkeyup => "$(this).closest('form').submit();", :style => "display:inline-block !important;width:auto;font-family:courier;", :size => "n"
-			-else
-				=portfolio_image.title
-			="-"
-			=l portfolio_image.shoot_at, :format => :date if portfolio_image.shoot_at
-			-if portfolio_image.exif
-				.exifs
-					=portfolio_image.exif.model
-					="-"
-					="f "+portfolio_image.exif.f_number.to_f.to_s
-					="-"
-					=portfolio_image.exif.exposure_time.to_s+" s"
-					="-"
-					=portfolio_image.exif.iso_speed_ratings.to_s+" iso"
-					="-"
-					© Nicolas Bally
-	
-		-if current_admin
-			.admin
-				#portfolio_image_form{:id => portfolio_image.id}
-			
-				= link_to i(:rotate, :gray_light, "12x14"), rotate_admin_portfolio_image_path(:id => portfolio_image.id, :manager => params[:manager], :multiple => params[:multiple]), :remote => true
-				= link_to i(:rotate_right, :gray_light, "12x14"), rotate_admin_portfolio_image_path(:id => portfolio_image.id, :manager => params[:manager], :multiple => params[:multiple], :direction => :right), :remote => true
-				=link_to "modifier", edit_admin_portfolio_image_path(portfolio_image), :remote => true
-				=link_to "supprimer", [:admin, portfolio_image], :method => :delete, :confirm => "Voulez-vous vraiment supprimer cette image ?", :remote => true
-	
-	%br
-	
-	
diff --git a/app/views/portfolios/_style_1.html.haml b/app/views/portfolios/_style_1.html.haml
deleted file mode 100644
index 62144d0..0000000
--- a/app/views/portfolios/_style_1.html.haml
+++ /dev/null
@@ -1,15 +0,0 @@
-.portfolio
-	#intro{:style => "padding:10px;margin:1em auto;"}
-		%h1=@portfolio.title
-		=markdown @portfolio.markdown_content
-
-	#style_2_portfolio_images{:style => "margin:0 auto;"}
-
-		
-	
-		-@portfolio.images.each do |img|
-			-if img.photo?
-
-			
-				.box=image_tag img.photo.thumb.url+"?"+img.updated_at.to_s, :class => "image", :style => "width:"+(img.ratio > 1 ? "200" : "200")+"px;padding:5px;"
-	
\ No newline at end of file
diff --git a/app/views/portfolios/_style_2.html.haml b/app/views/portfolios/_style_2.html.haml
deleted file mode 100644
index eee799f..0000000
--- a/app/views/portfolios/_style_2.html.haml
+++ /dev/null
@@ -1,34 +0,0 @@
-.portfolio
-	-if 1==2
-		.intro
-			%h1=@portfolio.title
-			=markdown @portfolio.markdown_content
-
-	.portfolio_images
-
-		-if current_admin
-		
-	
-			%form.fileupload{:action => admin_portfolio_images_path(:portfolio_id => @portfolio.id), :enctype => "multipart/form-data", :method => "POST"}
-	
-				.upload
-					.progress
-						.bar{:style => "height:1em;"}
-					
-					%button.add_files ajouter des photos
-	
-					%input{:multiple => "", :name => "portfolio_image[photo]", :type => "file", :style => "float:right;"}
-			
-			
-					%br
-			
-					%br
-					= hidden_field_tag "portfolio_image[portfolio_ids][]", @portfolio.id
-			
-				
-
-			:javascript
-				init_portfolio_images();
-
-	%br
-	.images=render :collection => @images, :partial => "portfolios/portfolio_image"
diff --git a/app/views/portfolios/create.js.erb b/app/views/portfolios/create.js.erb
new file mode 100644
index 0000000..d6a82ac
--- /dev/null
+++ b/app/views/portfolios/create.js.erb
@@ -0,0 +1,2 @@
+$('.portfolios_links').html("<%= escape_javascript(render(Portfolio.order(:title)))%>");
+$('#admin_over').html("");
\ No newline at end of file
diff --git a/app/views/portfolios/destroy.js.erb b/app/views/portfolios/destroy.js.erb
new file mode 100644
index 0000000..6672782
--- /dev/null
+++ b/app/views/portfolios/destroy.js.erb
@@ -0,0 +1 @@
+$('#portfolio_line_<%=@portfolio.id%>').remove();
\ No newline at end of file
diff --git a/app/views/portfolios/edit.js.erb b/app/views/portfolios/edit.js.erb
new file mode 100644
index 0000000..c3f0a7e
--- /dev/null
+++ b/app/views/portfolios/edit.js.erb
@@ -0,0 +1,2 @@
+
+$('#admin_over').html("<%= escape_javascript(render(:partial => 'form'))%>");
\ No newline at end of file
diff --git a/app/views/portfolios/new.js.erb b/app/views/portfolios/new.js.erb
new file mode 100644
index 0000000..08de60a
--- /dev/null
+++ b/app/views/portfolios/new.js.erb
@@ -0,0 +1,3 @@
+
+$('#admin_over').html("<%= escape_javascript(render(:partial => 'form'))%>");
+init_markdown();
\ No newline at end of file
diff --git a/app/views/portfolios/show.html.haml b/app/views/portfolios/show.html.haml
index 34d39a8..72c4299 100644
--- a/app/views/portfolios/show.html.haml
+++ b/app/views/portfolios/show.html.haml
@@ -1,4 +1,40 @@
 #small_index
 	-@portfolio.images.each do |img|
 		=link_to image_tag(img.photo.thumb.url, :style => "height:100px;float:left;padding:5px;"), portfolio_path(:slug => @portfolio.slug, :format => "js", :page => (@portfolio.images.after(img.shoot_at).count+1)), :onclick => '$("#small_index").toggleClass("active");' ,:remote => true
-#image_place=render :partial => "style_2"
\ No newline at end of file
+		
+		
+.portfolio
+	-if 1==2
+		.intro
+			%h1=@portfolio.title
+			=markdown @portfolio.markdown_content
+
+	.portfolio_images
+
+		-if current_admin
+		
+	
+			%form.fileupload{:action => admin_portfolio_images_path(:portfolio_id => @portfolio.id), :enctype => "multipart/form-data", :method => "POST"}
+	
+				.upload
+					.progress
+						.bar{:style => "height:1em;"}
+					
+					%button.add_files ajouter des photos
+	
+					%input{:multiple => "", :name => "portfolio_image[photo]", :type => "file", :style => "float:right;"}
+			
+			
+					%br
+			
+					%br
+					= hidden_field_tag "portfolio_image[portfolio_ids][]", @portfolio.id
+			
+				
+
+			:javascript
+				init_portfolio_images();
+
+	%br
+	.images=render :collection => @images, :partial => "portfolio_images/portfolio_image", :as => :image
+	
\ No newline at end of file
diff --git a/app/views/portfolios/show.js.erb b/app/views/portfolios/show.js.erb
index 2eb04b5..b9aa3c4 100644
--- a/app/views/portfolios/show.js.erb
+++ b/app/views/portfolios/show.js.erb
@@ -1,6 +1,12 @@
-$("#image_place").fadeOut(300,function(){
-$("#image_place").html("<%= escape_javascript(render(:partial => 'style_2')) %>");
-$("#image_place").fadeIn(300);
+
+$(".images").fadeOut(300,function(){
+	
+$(".images").html("<%= escape_javascript(render(:collection => @images, :partial => "portfolio_images/portfolio_image", :as => :image)) %>");
+
+$(".images").fadeIn(300, function(){
+$("html, body").animate({ scrollTop: 0 }, 1);
+
+});
 });
 
 
diff --git a/app/views/portfolios/update.js.erb b/app/views/portfolios/update.js.erb
new file mode 100644
index 0000000..d6a82ac
--- /dev/null
+++ b/app/views/portfolios/update.js.erb
@@ -0,0 +1,2 @@
+$('.portfolios_links').html("<%= escape_javascript(render(Portfolio.order(:title)))%>");
+$('#admin_over').html("");
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index d405741..49dcb52 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,8 +1,12 @@
 SitePerso::Application.routes.draw do
   
-  match "portfolios/:slug.:format" => 'portfolios#show', :as => :portfolio, :format => "html"
+  
+  
   
   match ":slug.:format" => 'pages#show', :as => :page, :format => "html"
+  resources :portfolios
+  
+  #match "galerie/:slug.:format" => 'portfolios#show', :as => :portfolio, :format => "html", :via => :get
   
   namespace :admin do
     root :to => "dashboard#index"