/*
 ref:		Df.Modal
 type:		Static Class
*/
Df.Modal = {

	_pars: {
		className: 'modal',
		iframe: true,
		animate: false,
		clickClose: true
	},

	_element: false,
	_on: false,
	_animate: false,

	setPars: function(pars) {
		Object.extend(Df.Modal._pars, pars)
		return Df.Modal
	},

	getUiInstance: function() {
		if(!Df.Modal._element){
			Df.Modal._create()
		}
		return Df.Modal._element
	},

	getElement: function() {
		if(!Df.Modal._element){
			Df.Modal._create()
		}
		return Df.Modal._element.getElement()
	},

	show: function(){
		if(!Df.Modal._element){
			Df.Modal._create()
		}

		Df.Modal._element.show()

		return Df.Modal
	},

	hide: function(){

		Df.Modal._element.hide()


		return Df.Modal
	},

	remove_click_close: function() {
		Df.Modal._element.getElement().stopObserving('click', Df.Modal.hide);
		Df.Modal._pars.clickClose = false
	},

	add_click_close: function() {
		Df.Modal._element.getElement().observe('click', Df.Modal.hide);
		Df.Modal._pars.clickClose = true
	},

	_create: function() {

		var pars = {}
		if(Df.Modal._pars.animate){
			pars.animate = Df.Modal._pars.animate
		}
		if(Df.Modal._pars.iframe){
			pars.iframe = true
		}

		Df.Modal._element = new Df.Ui(Df.e('div', document.body, {className: Df.Modal._pars.className})).set(pars);

		if(Df.Modal._pars.clickClose){
			Df.Modal._element.getElement().observe('click', Df.Modal.hide);
		}

		if(Prototype.Browser.ie6 && Df.Modal._pars.iframe){
			Event.observe(window, 'resize', Df.Modal._sizeIframe);
		}

		return Df.Modal
	},

	_sizeIframe: function() {
		if(Df.Modal._element.iframe){
			Df.Modal._element.iframe.height = document.viewport.getHeight()
			Df.Modal._element.iframe.width = document.viewport.getWidth()
		}
	}
}

/*
 ref:		Df.Dialog
 extends:	Df.Ui
 returns:	Df.Dialog
 type:		Class
*/
Df.Dialog = Class.create(Df.Ui, {

	initialize: function($super, hash){
		$super(hash.element)

		this.setPars({
			center: false,
			drag: true
		});

		this.content = $(hash.content)
	},

	set: function($super, pars){
		$super(pars)

		if(this.pars.center) {
			Event.observe(window,'resize', function(e){
				this.getElement().center()
			}.bind(this));
		}
		return this;
	},

	getContent: function(){
		return this.content
	},

	setContent: function(content){
		return this.getContent().update(content)
	}

});

/*
 ref:		Df.Lightbox
 type:		Static Class
*/
Df.Lightbox = {

	_dialog: null,

	createDialog: function(dialog){

		Df.Lightbox._dialog = dialog
		Df.Modal.getUiInstance().element.observe(':hide',function(e){
			this.hide()
		}.bind(Df.Lightbox._dialog));

		return Df.Lightbox
	},

	getDialog: function(){
		return Df.Lightbox._dialog
	},

	getContent: function(){
		return Df.Lightbox._dialog.getContent()
	},

	setContent: function(content){
		Df.Lightbox.getContent().update(content)
		return Df.Lightbox
	},

	show: function(){
		Df.Modal.show()
		Df.Lightbox._dialog.show()

		if(Df.Lightbox._dialog.pars.center) {
			Df.Lightbox._dialog.getElement().center()
		}
		return Df.Lightbox
	},

	hide: function(){
		Df.Modal.hide()
		Df.Lightbox._dialog.hide()
		return Df.Lightbox
	}




}
