# -*- encoding : utf-8 -*-
class Admin::SlidesController < ApplicationController
  
  	before_filter :authenticate_admin!
	load_and_authorize_resource
	
	layout "admin"

	navigation :home_pages


	def new

		@slide = Slide.new(:slider_id => params[:slider_id])
		
		@slide.cible = CibleArticle.new()
		
	end

	def create
	
		@slides = Slide.order(:position)
		
		
		
		
		params[:resource => "slide"]

		params_content = params[:slide].delete(:cible_attributes)
		content_type = params[:slide][:cible_type]

		cible_id = params[:slide][:cible_id].to_i if params[:slide][:cible_id].to_i != 0

	

		if !cible_id
			content = content_type.constantize.new(params_content)
		else
			content = content_type.constantize.find(cible_id) 

			content.attributes = params_content
		end


		@slide = Slide.new(params[:slide])
		@slide.cible = content



		
		
		
		
		
		
		
		if @slide.save
			flash[:notice] = "La slide à bien été créé."
			
			respond_to do |format|
				format.js
			end
			
		else
			
			respond_to do |format|
				format.js { render :action => :new}
			end
					
		end
		
	end

	def update
		
		@slide = Slide.find(params[:id])
		@slides = Slide.order(:position)
		
		
		
		params[:resource => "slide"]

		params_content = params[:slide].delete(:cible_attributes)
		content_type = params[:slide][:cible_type]

		cible_id = params[:slide][:cible_id].to_i if params[:slide][:cible_id].to_i != 0

		puts cible_id.to_i

		if !cible_id
			content = content_type.constantize.new(params_content)
		else
			content = content_type.constantize.find(cible_id) 

			content.attributes = params_content
		end



		@slide.cible = content
		
		
		
		
		
		if @slide.update_attributes(params[:slide])
			flash[:notice] = "Le slide à bien été modifiée."

			respond_to do |format|
				format.js
			end

		else
			respond_to do |format|
				format.js { render :action => :edit}
			end		
		end
		
	end

	def edit
		@slide = Slide.find(params[:id])
	end

	def show
		@slide = Slide.find(params[:id])
	end

	def destroy
		@slide = Slide.find(params[:id])
		@slide.destroy


		flash[:notice] = "Le slide à bien été supprimée."
	end
	
	
	def reorder
		i = 0
		params[:slide].each do |slide_id|
			i += 1
			slide = Slide.find(slide_id)
			slide.position = i
			slide.save
		end
		render :inline => "ok"
	end

end