function MenuItem(id, titulo, link, cssClass, orden) {
	this.id 				= id;
	this.titulo				= titulo;
	this.cssClass 			= cssClass;
	this.items 				= new Array();
	this.bulletImg 			= null;
	this.bulletImg2			= null;	
	this.orden				= orden;
	this.imageUrl 			= null;
	this.rollOverImageUrl 	= null;
	this.width 				= null;
	this.height				= null;
	this.link 				= link;
}
MenuItem.prototype.getId = function() { 
	return this.id; 
}
MenuItem.prototype.getTitulo = function() { 
	return this.titulo; 
}
MenuItem.prototype.getWidth = function() { 
	if (this.width != null) {
		return this.width;
	}
	return Configuration.ITEM_WIDTH;
}
MenuItem.prototype.getHeight = function() { 
	if (this.height != null) {
		return this.height;
	}
	return Configuration.ITEM_HEIGHT; 
}
MenuItem.prototype.getImageUrl = function() { 
	return this.imageUrl; 
}
MenuItem.prototype.getRollOverImageUrl = function() { 
	return this.rollOverImageUrl; 
}
MenuItem.prototype.getOrden = function() { 
	return this.orden; 
}
MenuItem.prototype.getAction = function() { 
	return this.action; 
}
MenuItem.prototype.getBulletImg = function() { 
	return this.bulletImg;
}
MenuItem.prototype.getBulletImg2 = function() { 
	return this.bulletImg2;
}
MenuItem.prototype.getParent = function() { 
	return this.parent; 
}
MenuItem.prototype.getLink = function() { 
	return this.link; 
}
MenuItem.prototype.setWidth = function(value) { 
	this.width = value; 
}
MenuItem.prototype.setTitulo = function(value) { 
	this.titulo = value; 
}
MenuItem.prototype.setHeight = function(value) { 
	this.height = value; 
}
MenuItem.prototype.setParent = function(item) { 
	this.parent = item; 
}
MenuItem.prototype.setBulletImg = function(bullet) { 
	this.bulletImg = bullet;
}
MenuItem.prototype.setBulletImg2 = function(bullet) { 
	this.bulletImg2 = bullet;
}
MenuItem.prototype.setBulletImg2 = function(bullet) { 
	this.bulletImg2 = bullet;
}
MenuItem.prototype.setImageUrl = function(image) { 
	this.imageUrl = image;
}
MenuItem.prototype.setRollOverImageUrl = function(image) { 
	this.rollOverImageUrl = image;
}
MenuItem.prototype.getCssClass = function() { 
	return this.cssClass; 
}
MenuItem.prototype.setCssClass = function(css) { 
	this.cssClass = css; 
}
MenuItem.prototype.getCssClassHover = function() { 
	return this.getCssClass() + "_Hover"; 
}
MenuItem.prototype.addItem = function(item) { 
	item.setParent(this);
	this.items.push(item); 
}
MenuItem.prototype.getChildItems = function() {  
	return this.items;
}
MenuItem.prototype.hasLink = function() {  
	return this.link != null;
}
MenuItem.prototype.hasChilds = function() {  
	return this.items.length > 0;
}
MenuItem.prototype.hasImage = function() {  
	return this.getImageUrl() != null;
}
MenuItem.prototype.createTextContents = function(contents) { 
	contents.href = this.getLink();
	contents.innerHTML = this.getTitulo();
}
MenuItem.prototype.createImageContents = function(container) { 
	container.style.backgroundImage = "";
	container.style.backgroundImage = "url("+this.getImageUrl()+")";
	container.style.width 			= this.getWidth() + "px";
	container.href 					= this.getLink();
}
MenuItem.prototype.getContents = function() { 
	var contents = document.createElement("a");
	if (this.hasImage()) {
		this.createImageContents(contents);
	} else {
		this.createTextContents(contents);
	}
	return contents; 
}
MenuItem.prototype.hasBullet = function() {
	return this.getBulletImg() != null;
}
MenuItem.prototype.hasBullet2 = function() {
	return this.getBulletImg2() != null;
}
MenuItem.prototype.getContainerName = function() { 
	var containerName = "ItemsContainer_";
	var tmpParents = new Array();
	var item = this.getParent();
	tmpParents.push(item);
	
	while (item != null) {
		item = item.getParent();
		tmpParents.push(item);
	}
	for(var i=tmpParents.length-1; i>=0; i--) {
		var tmpItem = tmpParents[i];
		if (tmpItem != null) {
			containerName += tmpItem.getId() + "_";
		}
	}
	
	return containerName.substring(0, containerName.length-1);
}
MenuItem.prototype.changeCssBetweenLevels = function() { 
	return config.getMaxLevelCssClass() > -1;
}
MenuItem.prototype.setCssClassByLevel = function(level) { 
	if (this.changeCssBetweenLevels()) {
		if (level <= config.getMaxLevelCssClass()) {
			this.setCssClass(this.getCssClass() + "_Level" + level);
		} else {
			this.setCssClass(this.getCssClass() + "_DefaultLevel");
		}
	}
}
MenuItem.prototype.getLevel = function() { 
	var level = 0;
	var item = this;
	while(item.getParent() != null) {
		level++;
		item = item.getParent();
	}
	return level;
}
MenuItem.prototype.getRootParentOrden = function() { 
	var item = this;
	while(item.getParent() != null) {
		item = item.getParent();
	}
	return item.getOrden();
}
MenuItem.prototype.getHopsToRoot = function() { 
	var hops = 0;
	var item = this;
	while(item.getParent() != null) {
		hops++;
		item = item.getParent();
	}
	return hops;
}
MenuItem.prototype.getLeftFromRoot = function() { 
	var it 			= new ArrayIterator(mediator.getDropDownMenu().getItems());
	var maxOrder 	= this.getRootParentOrden();
	var left 		= 0;
	
	while(it.hasNext()) {
		var item = it.next();
		if (item.getOrden() < maxOrder) {
			left += item.getWidth() + 43;
		}
	}
	left += this.getHopsToRoot() * Configuration.ITEM_WIDTH;
	return left;
}
MenuItem.prototype.getTopFromRoot = function() { 
	var top = Configuration.ROOT_ITEM_HEIGHT;
	var item 	= this;
	
	while (item.getParent() != null) {
		top += (item.getOrden()-1) * (item.getHeight()+1);
		item = item.getParent();
	} 
	
	return top;
}