

function AttributesControlTypeRadio(intControlId, mixInitialState, strHtmlId, strUrlPart, strLabel, intAttributeId, intAttributeValue, intParentId, intParentValue){
	this.intControlId = intControlId;
	
	this.mixInitialState = mixInitialState;
	this.mixState = mixInitialState;
	this.strHtmlId = strHtmlId;
	this.strUrlPart = strUrlPart;
	this.strLabel = strLabel;
	this.intAttributeId = intAttributeId;
	this.intAttributeValue = intAttributeValue;
	this.intParentId = intParentId;
	this.intParentValue = intParentValue;
	this.blnVisible = true;
		
	this.getUrlParam = function (){
		if (this.mixState){
			return '&' + strUrlPart;
		}
		return '';
	}
	
	this.resetState = function (){
		if (this.mixState != this.mixInitialState){
			this.mixState = this.mixInitialState;
			if (this.mixState){
				AttributesPopup.showDependent(this.intAttributeId, this.intAttributeValue);
			} else {
				AttributesPopup.hideDependent(this.intAttributeId, this.intAttributeValue);
			}
		}
		return true;
	}
	
	this.updateControls = function (){
		if (this.mixState){
			AttributesPopup.showDependent(this.intAttributeId, this.intAttributeValue);
		}
		return true;
	}
	
	this.changeState = function (intControlId, mixNewState){
		if (this.intControlId == intControlId){
			this.mixState = mixNewState;
			return true;
		}
		return false;
	}
	
	this.updateState = function (intAttributeId, intAttributeValue){
		if (this.intAttributeId == intAttributeId){
			if (intAttributeValue != this.intAttributeValue){
				this.mixState = false;
			}
		}
		return false;
	}
	
	this.getState = function (intControlId){
		if (this.intControlId == intControlId){
			return this.mixState;
		}
		return null;
	}
	
	this.getAttributeId = function (intControlId){
		if (this.intControlId == intControlId){
			return this.intAttributeId;
		}
		return null;
	}
	
	this.getParent = function (intControlId){
		if (this.intControlId == intControlId){
			return this.intParentId;
		}
		return null;
	}
	
	this.getValue = function (intControlId){
		if (this.intControlId == intControlId){
			return this.intAttributeValue;
		}
		return null;
	}
	
	this.hideDependent = function (intParentId, intParentValue){
		if (this.intParentId == intParentId && this.intParentValue == intParentValue){
			this.blnVisible = false;
		} 
	}
	
	this.hideDependentFilters = function (intParentId, intParentValue){
		if (this.intParentId == intParentId && this.intParentValue == intParentValue){
			this.blnVisible = false;
		}
	}
	
	this.showDependent = function (intParentId, intParentValue){
		if (this.intParentId == intParentId && this.intParentValue == intParentValue){
			this.blnVisible = true;
		}
	}
	
	this.hideDependentByAttributeId = function (intAttributeId){
		if (this.intParentId == intAttributeId){
			this.blnVisible = false;
		}
	}
	
	this.getHtml = function (){
		return '<label><input type="radio" name="pbatr'+this.intAttributeId+'" onclick="{AttributesPopup.updateState('+this.intAttributeId+','+this.intAttributeValue+');AttributesPopup.hideDependentByAttributeId('+this.intAttributeId+');AttributesPopup.changeState('+this.intControlId+', this.checked);}" value="1" '+(this.mixState?'checked="checked"':'')+'/>'+this.strLabel+'</label>';
	}
	
	this.isVisible = function (){
		return this.blnVisible;
	}
	
	this.hasActiveFilters = function (){
		return this.mixState;
	}
	
	this.isActive = function (){
		return this.mixState;
	}
	
	this.rebuildFilters = function (strGroupId){
		if (this.strHtmlId == ''){
			return true;
		}
		var objControlElement = document.getElementById(this.strHtmlId);
		var strGroupDiv = (this.mixState?'atgv_':'atgm_')+strGroupId;
		var objGroupDiv = document.getElementById(strGroupDiv);
		objGroupDiv.appendChild(objControlElement);
		return true;
	}
	
	this.build = function (){
		if (!this.mixState){
			AttributesPopup.hideDependent(this.intAttributeId, this.intAttributeValue);
		}
	}
	
	this.dump = function (){
		return '<ul><li>AttributesControlTypeRadio<ul>'
					+'<li>intControlId = '+this.intControlId+'</li>'
					+'<li>mixInitialState = '+(this.mixInitialState?'true':'false')+'</li>'
					+'<li>mixState = '+(this.mixState?'true':'false')+'</li>'
					+'<li>strHtmlId = '+this.strHtmlId+'</li>'
					+'<li>strUrlPart = '+this.strUrlPart+'</li>'
					+'<li>strLabel = '+this.strLabel+'</li>'
					+'<li>intAttributeId = '+this.intAttributeId+'</li>'
					+'<li>intAttributeValue = '+this.intAttributeValue+'</li>'
					+'<li>intParentId = '+this.intParentId+'</li>'
					+'<li>intParentValue = '+this.intParentValue+'</li>'
					+'<li>blnVisible = '+(this.blnVisible?'true':'false')+'</li>'
					+'</ul></li></ul>';
	}
}