//
// 
//  LayoutController.js
//
//  Created by  on 2009-12-23.
//  Copyright (c) 2009 murat n konar. All rights reserved.
//

var LayoutController = new Class({

	// -------------------------------------------------------------
	//	initialize
	// -------------------------------------------------------------
	initialize: function() 
	{ 
		var self = this
		this.slideshow_container 	= $('slideshow-container')
		this.slideshow 				= $('slideshow')
		this.fotocaption 			= $('fotocaption')
		
		var slideshow_container_size = this.slideshow_container.getSize()
		var slideshow_size 			= this.slideshow.getSize()

		this.slideshow_inset		= {} 			
		this.slideshow_inset.x 		= (slideshow_container_size.x - slideshow_size.x)/2
		this.slideshow_inset.y 		= (slideshow_container_size.y - slideshow_size.y)/2

		window.addEvent('resize', function(){self.handleResize()})
		self.handleResize() // call once to get synced up
	},
	
	// -------------------------------------------------------------
	//	handleResize
	// -------------------------------------------------------------
	handleResize: function() 
	{ 
		// we're fitting the slideshow container inside its parent's new size, preserving 
		// the aspect ratio of the slide show container.
		var parent_size 				= this.slideshow_container.getParent().getSize()
		var slideshow_container_size 	= this.slideshow_container.getSize()

		var desired_width 				= parent_size.x - 200
		var desired_height 				= parent_size.y - 200
		
		this.slideshow_container.setStyles({'width': desired_width, 'height':desired_height})
		
		var new_slideshow_size = {}
		new_slideshow_size.x =  desired_width-(2*this.slideshow_inset.x)
		new_slideshow_size.y =  desired_height-(2*this.slideshow_inset.y)
		
		this.slideshow.setNewSize(new_slideshow_size)
	},
	
	// -------------------------------------------------------------
	//	handleResizePreservingAspectRatio
	// -------------------------------------------------------------
	handleResizePreservingAspectRatio: function() 
	{ 
		// we're fitting the slideshow container inside its parent's new size, preserving 
		// the aspect ratio of the slide show container.
		var parent_size 				= this.slideshow_container.getParent().getSize()
		var slideshow_container_size 	= this.slideshow_container.getSize()

		if (this.aspect_ratio == undefined)
		{
			this.aspect_ratio 				= slideshow_container_size.x/slideshow_container_size.y
		}
		
		var desired_width 				= parent_size.x - 200
		var desired_height 				= desired_width/this.aspect_ratio
		
		if (desired_height > parent_size.y - 200)
		{
			desired_height = parent_size.y - 200
			desired_width = desired_height*this.aspect_ratio
		}
		
		this.slideshow_container.setStyles({'width': desired_width, 'height':desired_height})
		
		var new_slideshow_size = {}
		new_slideshow_size.x =  desired_width-(2*this.slideshow_inset.x)
		new_slideshow_size.y =  desired_height-(2*this.slideshow_inset.y)
		
		this.slideshow.setNewSize(new_slideshow_size)
	}
});



