/*
 * @author: Alexander Myadzel <aem@teletype.ru>
 * @modified: n/a
 *
 */


var Cart = {
	aItems: [],
	
	oCheckAll: null,
	
    oTable: null,
    
    initCheckboxes: function() {
		Cart.oTable = getElementsByClassName('products-table')[0];
       
	   if (Cart.oTable) {
			Cart.oCheckAll = getElementsByClassName('check-all', Cart.oTable)[0];
			
			addEvent(Cart.oCheckAll, 'click', Cart.clickCheckAll);
			
			var oItems = getElementsByClassName('checkbox__unlink', Cart.oTable);
			for (var i = 0; i < oItems.length; i++) {
				Cart.aItems.push(oItems[i]);
				
				addEvent(oItems[i], 'click', Cart.clickOne);
            }
        }
    },
    
	clickCheckAll: function(oEvent) {
		var oEventElement = getEventElement(getEvent(oEvent));
		if (oEventElement.checked) {
			Cart.CheckAll(true);
		} else {
			Cart.CheckAll(false);
		}
    },
	
	CheckAll: function(bCheck) {
		for (var i = 0; i < Cart.aItems.length; i++) {
			Cart.aItems[i].checked = bCheck;
		}
	},
	
	clickOne:  function(oEvent) {
		var iCountChecked = 0;
		
		var oEventElement = getEventElement(getEvent(oEvent));
		
		for (var i = 0; i < Cart.aItems.length; i++) {
			if (Cart.aItems[i].checked) {
				iCountChecked++;
			}
		}
		
		Cart.oCheckAll.checked = !!(iCountChecked === Cart.aItems.length);
		
		if (iCountChecked === 0) {
			Cart.oCheckAll.indeterminate = false;
		} else {
			Cart.oCheckAll.indeterminate = !!(iCountChecked !== Cart.aItems.length);
		}
	},

	init: function() {
        Cart.initCheckboxes();
    }
    
}

addEvent(window, 'load', Cart.init);

