var Dimension = function (){
	this.windowWidth = null;
	this.windowHeight = null;
	this.init();
}
Dimension.prototype.init = function(){
	this.windowHeight = $(window).height();
	this.windowWidth = $(window).width();
}
Dimension.prototype.calculateWithFix = function(parentContainer, percentage){
	var widthContainer = this.windowWidth;
	if(parentContainer){widthContainer = parentContainer.width();}
	return Math.round(widthContainer * percentage);
}
Dimension.prototype.calculateHeightFix = function(parentContainer, percentage){
	var heightContainer = this.windowHeight;
	if(parentContainer){widthContainer = parentContainer.height();}
	return Math.round(heightContainer * percentage);
}
Dimension.prototype.calculateCenterHorizontal = function(container, element){
	var widthParent = this.windowWidth;
	if(container){
		widthParent = container.width();
	}
	return Math.round((widthParent - element.width()) / 2);
}
Dimension.prototype.calculateCenterVertical = function(container, element){
	var heightParent = this.windowHeight;
	if(container){
		heightParent = container.height();
	}
	return Math.round((heightParent - element.height()) / 2);
}
/**
 * @class BoundingBox
 */
var BoundingBox = function(aElement){
	this.element = aElement;
}
BoundingBox.prototype.full = function(parameters){
	if(!parameters.container){parameters.container = this.element.parent();}
	
	this.element.css('top',parameters.container.css('top')+'px');
	this.element.css('left',parameters.container.css('left')+'px');
	this.element.css('width', parameters.container.css('width')+'px');	
	this.element.css('height', parameters.container.css('height')+'px');
	this.element.css('position','absolute');
}
BoundingBox.prototype.config = function(parameters){
	this.element.css('position','absolute');
	if(!parameters.container){parameters.container = this.element.parent();}
	if(!parameters.hcenter){parameters.hcenter = false;}
	if(!parameters.vcenter){parameters.vcenter = false;}
	if(!parameters.width){
		parameters.width = parameters.container.width();
	}else{
		if(parameters.width <= 1){
			var percentage = parameters.width; 
			parameters.width = Math.round(parameters.container.width() * percentage);
		}
	}
	this.element.css('width',parameters.width+'px');
	
	if(!parameters.height){
		parameters.height = parameters.container.height();
	}else{
		if(parameters.height <= 1){
			var percentage = parameters.height; 
			parameters.height = Math.round(parameters.container.height() * percentage);
		}
	}
	this.element.css('height',parameters.height+'px');

	if(!parameters.top){
		if(parameters.vcenter){
			parameters.top = application.dimension.calculateCenterVertital(parameters.container, this.element);
		}else{
			parameters.top = 0;
		}
	}else{
		if(parameters.top <= 1){
			var percentage = parameters.top; 
			parameters.top = Math.round(parameters.container.height() * percentage);
		}
	}
	this.element.css('top',parameters.top+'px');

	if(!parameters.left){
		if(parameters.hcenter){
			parameters.left = application.dimension.calculateCenterHorizontal(parameters.container, this.element);
		}else{	
			parameters.left = 0;
		}
	}else{
		if(parameters.left <= 1){
			var percentage = parameters.left; 
			parameters.left = Math.round(parameters.container.width() * percentage);
		}
	}
	this.element.css('left',parameters.left+'px');
}

