var CheckBoxCollection = function() {
	
	var ye = YAHOO.util.Event;
	var yd = YAHOO.util.Dom;
	
	ye.addListener(window, "load", init);
	
	function getAttribute(element, attrId)
	{
	    return element.attributes[attrId] ? element.attributes[attrId].nodeValue : null;
	}
	
	function init()
	{		
		initializeElements("radio-button");
		initializeElements("checkbox");		
	}
	
	function initializeElements(className)
	{
		var radios = yd.getElementsByClassName(className);
        
        for(var i = 0; i < radios.length; i++)
        {
            // Getting label
            var labels = radios[i].parentNode.getElementsByTagName("label");
            var label = document.createElement("label");
            for(var j = 0; j < labels.length; j++)
            {
                
                if(getAttribute(labels[j], "for") == radios[i].id)
                {
                    labels[j].style.display = "none";
                    label = labels[j];
                    break;
                }
            }
            
            var html = [
             '<a href="#', radios[i].name, '" class="', className, ' ', className, '-', radios[i].name,'">' + label.innerHTML + '</a>'
            ].join("");
            
            var element = NB.insertHtml("afterend", radios[i], html);
			
			var css = radios[i].getAttribute("style");

	        if(typeof(css) == "string")
	        {
	            element.setAttribute("style", css);
	        }
	        else if(css != null) // in IE it is object
	        {
	            element.style.cssText = css.cssText;
	        }
	        
	        
	        
			
			radios[i].style.position = "absolute";
			radios[i].style.visibility = "hidden";
			
			
            ye.addListener(element, "click", onButtonClick, {
                element : element,
                inputEl : radios[i]                
            });
        }
	}
	
	function onButtonClick(e, ea)
	{
		e = ye.getEvent(e);
		ye.stopEvent(e);
		
		// Radio button
		if(ea.element.className.indexOf("radio-button") > -1)
		{
			var allRadios = yd.getElementsByClassName("radio-button-" + ea.inputEl.name);
			for(var i = 0; i < allRadios.length; i++)
			{
				yd.removeClass(allRadios[i], "radio-button-checked");
			}
			yd.addClass(ea.element, "radio-button-checked");
			
			ea.inputEl.checked = true;			
		}
		// Checkbox
		else
		{
			if(yd.hasClass(ea.element, "checkbox-checked"))
			{
				yd.removeClass(ea.element, "checkbox-checked")
				ea.inputEl.checked = false;
			}
			else
			{
				yd.addClass(ea.element, "checkbox-checked")
				ea.inputEl.checked = true;
			}
		}
		
		if(typeof ea.inputEl.onclick == "function")
		{
		    ea.inputEl.onclick(e, ea);
		}
		
	}
	
	
	
	
	
	
}();

