(function(){
	var D = YAHOO.util.Dom; //shortcut per il dom
	var EV = YAHOO.util.Event; //shortcut per Event
	var DM = YAHOO.widget.DateMath; //shortcut per DateMath;
	var L = YAHOO.lang; //shortcut per YAHOO.lang
	var CONFIG = {
		SIZABLE_HEIGHT_CLASS_NAME : "VERTICAL_SIZABLE"
	}
	function pageSizer (){
		this.init.apply(this);
	}
	pageSizer.prototype = {
		init:function(){
			for(p in CONFIG) {
				if(!L.hasOwnProperty(this,p)) {
					this[p]=CONFIG[p];
				}
			}
			var szels=D.getElementsByClassName(this.SIZABLE_HEIGHT_CLASS_NAME,'div');
			if(szels) {
				this.sizableElement = szels[0];//1 solo elemento è espandibile
			}
			else return ;
			this.rootElements = D.getChildrenBy(document.body,function (el){
				var display = D.getStyle(el,'display');
				if(display=='none') return false;
				var visibility = D.getStyle(el,'visibility');
				if('visibility'=='hidden') return false;
				var pos = D.getStyle(el,'position');
				if(pos=='absolute') return false;
				return true;
			});
			this.lastElement = this.rootElements[this.rootElements.length-1];
			this.run();
			YAHOO.util.Event.addListener(window,'resize',this.run,this,true);
		},
		run:function (){
			var el= this.sizableElement;
			var lastElement = this.lastElement;
			var lastRegion = D.getRegion(lastElement);
			var bottom = lastRegion.bottom;
			var vh = D.getViewportHeight();
			if(bottom<vh) {
				var elRegion = D.getRegion(el);
				var eh= elRegion.bottom-elRegion.top;
				var delta = vh-bottom;
				D.setStyle(el,'height',(eh+delta) + 'px');
			}
		},
		resync:function (){
			var el= this.sizableElement;
			var lastElement = this.lastElement;
			var lastRegion = D.getRegion(lastElement);
			var bottom = lastRegion.bottom;
			var vh = D.getDocumentHeight();
			if(bottom<vh) {
				var elRegion = D.getRegion(el);
				var eh= elRegion.bottom-elRegion.top;
				var delta = vh-bottom;
				D.setStyle(el,'height',(eh+delta) + 'px');
			}
		}
	}
	
	pageSizer.install =function (){
		window.PAGESIZER= new pageSizer();
	}
	$E.addHandler(window,'onload',pageSizer.install)
	//EV.onDOMReady(pageSizer.install);
}());
