
var Portal = Class.create();

Portal.prototype = {
	
	initialize: function (options) {
		
		this.setOptions(options);

		var sortables = $$("#"+this.options.portal+" ."+this.options.column);

		var url = "";
		if (this.options.saveurl) {
			url = this.options.saveurl;			
		}else{
			url = "";
		}



		sortables.each(function (sortable) {
			Sortable.create(sortable,{ 
				containment: sortables,
				constraint: false,
				tag: 'div',
				only: this.options.block,
				dropOnEmpty: true,
				handle: this.options.handle,
				hoverclass: this.options.hoverclass,
				onUpdate: function (container) {
					if (!url) {
						return;
					}
					
					
					var postBody = container.id + ':';

					var blocks = $$("."+this.options.column+" ."+this.options.block);

					postBody += blocks.pluck('id').join(',');
					postBody = 'value=' + escape(postBody);

					new Ajax.Request(url, {method: 'post', postBody: postBody } );
				}.bind(this)
			});
		}.bind(this));


	
		var blocks = $$("."+this.options.column+" ."+this.options.block);

		identification = 0;

		blocks.each(function (block) {

			var idem_bloc   = block.id;

			//Contenu
			var idem 	= this.options.content+"_"+identification;
			block.down(' .'+this.options.content).id = idem; 
			


			//Demaximiser les fenetres
			var idemhandle  = this.options.toggle+"_"+identification;			
			block.down(' .'+this.options.toggle).id  = idemhandle;			
			Event.observe(block.down(' .'+this.options.toggle), 'click', function (e) { 
				$(idemhandle).toggleClassName("block-max");				
				Effect.toggle(idem, 'blind', {duration:0.2});
				if(url!=""){
					new Ajax.Request(url, {method: 'post', postBody: 'value='+escape('blocMiniser:'+idem_bloc) } );
				}
			}, false );
			//************************

			identification++;
		
		}.bind(this));


	},

	setOptions: function (options) {
		this.options = {
			portal: 'offre_widget_col_0',
			column: 'portal-column',
			block: 'block',
			content: 'content',
			handle: 'handle',
			hoverclass: 'block-hover',
			toggle: 'block-toggle',
			saveurl: 'save.php'
		}
		Object.extend(this.options, options || {});
	},

	applySettings: function (settings) {
		for (var container in settings) {
			settings[container].each(function (block) { $(container).appendChild($(block));	});
		}
	}
}

