var Attributes = {
	arrChildren : [],
	arrAttributesValues : [],
	arrAttributes : [],
	arrTooltips: [],
	
	register : function (intId, intValue, intParentId, intParentValue, strTooltip) {
		if (this.arrChildren[intParentId] == null){
			this.arrChildren[intParentId] = new Array();
		}
		if (this.arrChildren[intParentId][intParentValue] == null){ 
			this.arrChildren[intParentId][intParentValue] = new Array();
		}
		this.arrChildren[intParentId][intParentValue][this.arrChildren[intParentId][intParentValue].length] = intId;
		this.arrAttributesValues[intId] = intValue;
		this.arrTooltips[intId] = strTooltip;
		this.arrAttributes[this.arrAttributes.length] = intId;
	},

	changeChildrenVisibility : function (intId, intValue, blnVisible){
		var strDisplay = (blnVisible?'':'none');
		if (this.arrChildren[intId] == null){
			return true;
		}
		if (this.arrChildren[intId][intValue] == null){
			return true;
		}
		var intCount = this.arrChildren[intId][intValue].length;
		for (var i = 0; i < intCount; i++){
			if (this.arrAttributesValues[this.arrChildren[intId][intValue][i]] != null){
				document.getElementById('dv_atr_'+this.arrChildren[intId][intValue][i]).style.display = strDisplay;
			}
		}
		return true;
	},
	
	doChangeValue : function (intId, intValue){
		if (this.arrAttributesValues[intId] != intValue){
			this.changeChildrenVisibility(intId, this.arrAttributesValues[intId], false);
			this.changeChildrenVisibility(intId, intValue, true);
			this.arrAttributesValues[intId] = intValue;	
		}
	},
	
	showChildren : function(){
		var count = this.arrAttributes.length;
		for (var i = 0; i < count; i++){
			this.changeChildrenVisibility(this.arrAttributes[i], this.arrAttributesValues[this.arrAttributes[i]], true);
		}
	},
	
	changeAllChildrenVisibility : function (intId, intCurrentValue){
		if (this.arrChildren[intId] == null){
			return true;
		}
		for (var intValue in this.arrChildren[intId]){
			if (intValue == intCurrentValue){
				this.changeChildrenVisibility(intId, intCurrentValue, true);
			} else {
				this.changeChildrenVisibility(intId, intValue, false);
			}
		}
	},
	
	refreshAllChildrenVisibility : function (){
		var count = this.arrAttributes.length;
		for (var i = 0; i < count; i++){
			this.changeAllChildrenVisibility(this.arrAttributes[i], this.arrAttributesValues[this.arrAttributes[i]]);
		}
	},
	
	showTooltip : function (intAttributeId, objSource, strAttributeName){
		objTooltip = document.getElementById('at_tooltip');
		objTooltipTitle = document.getElementById('at_tooltip_title');
		objTooltipDesc = document.getElementById('at_tooltip_desc');		
		objTooltipTitle.innerHTML = strAttributeName;
		objTooltipDesc.innerHTML = this.arrTooltips[intAttributeId];
		objTooltip.style.display = '';
		objTooltip.style.left = (objSource.offsetLeft + 25) + 'px';
		objTooltip.style.top = (objSource.offsetTop - 30) + 'px';		
	},
	
	hideTooltip : function (){
		objTooltip = document.getElementById('at_tooltip');
		objTooltip.style.display = 'none';
	}
	
};