var Compare = function() {
	return {
        
        selectedItems:    new Array(),
        totalCompareBars: 2,
        maxItems:         5,
        
        initialize: function(items)
        {
            if (items)
                for (var i in items)
                    this.addItem(items[i]);
            
            this.getCheckedBoxes();
        },
        
        addItem: function(itemID)
        {
            var found = false;
            for (var i in this.selectedItems)
            {
                if (this.selectedItems[i] == itemID)
                {
                    found = true;
                    break;
                }
            }
            
            if (!found)
            {
                this.selectedItems.push(itemID);
                this.drawCompareBars();
            }
            
            var checkBox = document.getElementById('comparecheckbox_' + itemID);
            
            if (checkBox)
                checkBox.checked = true;
        },
        
        checkCompareBox: function(input)
        {
            var itemID = input.id.split('_')[1];
            
            if (input.checked)
            {
                if (this.selectedItems.length < this.maxItems)
                {
                    this.addItem(itemID);
                }
                else
                {
                    return false;
                }
            }
            else
            {
                this.removeItem(itemID);
            }
        },
        
        removeItem: function(itemID)
        {
            var found = false;
            for (var i in this.selectedItems)
            {
                if (this.selectedItems[i] == itemID)
                {
                    this.selectedItems.splice(i, 1);
                    found = true;
                }
            }
            
            if (found)
                this.drawCompareBars();
                
            var checkBox = document.getElementById('comparecheckbox_' + itemID);
            
            if (checkBox)
                checkBox.checked = false;
        },
        
        drawCompareBars: function()
        {
            var images = new Array();
            
            for (var i in this.selectedItems)
            {
                var itemID = this.selectedItems[i];
                
                var compareImageInput = document.getElementById('compareimage_' + itemID);
                if (compareImageInput)
                    images.push(new Array(itemID, document.getElementById('compareimage_' + itemID).value));
            }
            
            for (var i = 1; i <= this.totalCompareBars; i++)
            {
                var compareImageDivs = document.getElementById('comparebar' + i).getElementsByTagName('DIV');
                
                for (var j in compareImageDivs)
                {
                    if (images[j])
                    {
                        compareImageDivs[j].innerHTML = '<img src="' + images[j][1] + '"><img class="compareremovebutton" src="images/removecompare.png">';
                        compareImageDivs[j].className = 'compareimage filled';
                        compareImageDivs[j].onclick   = Function('Compare.removeItem(\'' + images[j][0] + '\')');
                    }
                    else
                    {
                        compareImageDivs[j].innerHTML = '';
                        compareImageDivs[j].className = 'compareimage';
                        compareImageDivs[j].onclick   = '';
                    }
                }
            }
        },
        
        getCheckedBoxes: function()
        {
            var results = document.getElementById('results');
            
            if (results != undefined)
            {
                var inputs = results.getElementsByTagName('input');

                for (var i in inputs)
                {
                    if (inputs[i].type == 'checkbox' && inputs[i].checked && inputs[i].id != undefined && inputs[i].id.split('_')[0] == 'comparecheckbox')
                    {
                        this.addItem(inputs[i].id.split('_')[1]);
                    }
                }
            }
        },
        
        compare: function()
        {
            var params = new Array();
            
            for (var i in this.selectedItems)
            {
                params.push('itemid[]=' + this.selectedItems[i]);
            }
            
            if (params.length > 1)
            {
                window.location = '?do=compare&' + params.join('&');
            }
            else
            {
                alert("Please select at least two products before\npressing the compare button.");
            }
        }
	};
}();
