PRVD.APP.UC.ProductSetSelection = function(htmlElementID)
{
	this.ElementID = htmlElementID;
	this.Element = document.getElementById(this.ElementID);
	this.ProductChangedEvent = new PRVD.CT.EVENTS.CustomEvent(this.ElementID + "_ProductChangedEvent");	
	this.CurrentlySelectedProductIDValue = -1;
	
	this.HandleCheckedEvent = function(type,args,object)
	{
		if(object.CurrentlySelectedProductIDValue != object.ProductSelections[args[0]].Value)
		{
			for(var i=0; i < object.ProductSelections.length; i++)
		    {
			    if( object.ProductSelections[i].Value == object.CurrentlySelectedProductIDValue )
			    {
				    if( object.ProductSelections[i].ImageElement )
				        object.ProductSelections[i].ImageElement.className = "";
		            if( object.ProductSelections[i].TableHeader )
		                object.ProductSelections[i].TableHeader.className = "unSelectedImageHeader";
		            if( object.ProductSelections[i].TableFooter )
		                object.ProductSelections[i].TableFooter.className = "unSelectedImageFooter";
		            if( object.ProductSelections[i].HeaderBox )
		                object.ProductSelections[i].HeaderBox.className = "vaseTableRadioCell";
			    }
		    }
		
		    if( object.ProductSelections[args[0]].ImageElement )
		        object.ProductSelections[args[0]].ImageElement.className = "selectedImage";
			if( object.ProductSelections[args[0]].ImgHeader )
			    object.ProductSelections[args[0]].ImgHeader.className = "invisibleImageHeader";
			if( object.ProductSelections[args[0]].ImgFooter )
			    object.ProductSelections[args[0]].ImgFooter.className = "invisibleImageFooter";
			if( object.ProductSelections[args[0]].TableHeader )
			    object.ProductSelections[args[0]].TableHeader.className = "SelectedImageHeader";
			if( object.ProductSelections[args[0]].TableFooter )
			    object.ProductSelections[args[0]].TableFooter.className = "SelectedImageFooter";
				
			object.CurrentlySelectedProductIDValue = object.ProductSelections[args[0]].Value;
			if(object.HiddenFormValue)
			    object.HiddenFormValue.value = object.CurrentlySelectedProductIDValue;
            object.ProductChangedEvent.fire(object.ProductSelections[args[0]].Value);
		}
	};
	this.Reload = function(html)
	{
		html = html.replace(/ id=\"/g, " id=\"" + this.ElementID + "_");
		div = document.createElement("div");
		div.innerHTML = html;
		this.Element.parentNode.replaceChild(div, this.Element);
		this.Element = div.childNodes[0];
		this.accessorySelections = null;
		this.LoadMemoryObjects();
		div=null;
	};
	this.LoadMemoryObjects = function()
	{
		// load the hidden form value if it exists
		hiddenformfieldelements = PRVD.CT.UT.GetElementsByPrvdName(this.Element, "productsetselectedid");
		if(hiddenformfieldelements.length > 0)
		{
		    this.HiddenFormValue = hiddenformfieldelements[0];
		}
		hiddenformfieldelements = null;
		
		imageElements = PRVD.CT.UT.GetElementsByPrvdName(this.Element, "productselection");
		this.ProductSelections = new Array(imageElements.length);
		for(var i=0; i < imageElements.length; i++)
		{
			this.ProductSelections[i] = new PRVD.APP.UC.DefaultProductSelection(imageElements[i].id, i);
			this.ProductSelections[i].OnCheckedEvent.subscribe(this.HandleCheckedEvent, this);
			
			if( this.ProductSelections[i].IsSelected == true )
			{
				this.CurrentlySelectedProductIDValue = this.ProductSelections[i].Value;
				if(this.HiddenFormValue)
			        this.HiddenFormValue.value = this.CurrentlySelectedProductIDValue;
			}
		}
		imageElements=null;
		i=null;
	};
	this.LoadMemoryObjects();
};
