$(document).ready(function()
{
    productSelector = function(settings) {
        var me = this;

        me.enabled = true;
        me.page = 0;
        me.settings = settings;
        
        var aGenders = me.checkedInArray('gender').join(',');
		var aTypes = me.checkedInArray('type').join(',');
		var aBrands = me.checkedInArray('brand').join(',');
		var aColor = me.checkedInArray('color').join(',');
			
		me.last = aGenders + '/' + aTypes + '/' + aBrands + '/' + aColor + '/' + me.page;
        
        setInterval(function() {
			me.load.apply(me);
		}, 1000);
    }
    
    productSelector.prototype = {
        load: function() {
            if (!this.enabled) {
                return;
            }
            
            var aGenders = this.checkedInArray('gender').join(',');
			var aTypes = this.checkedInArray('type').join(',');
			var aBrands = this.checkedInArray('brand').join(',');
			var aColor = this.checkedInArray('color').join(',');
			
			var now = aGenders + '/' + aTypes + '/' + aBrands + '/' + aColor + '/' + this.page;

			if (now != this.last) {
				if (!arguments[0]) {
					this.page = 0;
					now = aGenders + '/' + aTypes + '/' + aBrands + '/' + aColor + '/' + this.page;
				}
				this.loadAjax(this.last = now);
			}
        },
        
        loadPage: function(num)
        {
			this.page = num;
			this.load(true);	 
        },
        
        checkedInArray: function(type)
        {
            var checkboxes = $("." + type + "-selector INPUT[type='checkbox']");
            
            var ret = new Array();
            for (i = 0; i < checkboxes.length; ++i) {
                if ($.isTrue($(checkboxes[i]).attr('checked'))) {
                    ret.push(checkboxes[i].name.split('-').pop());
                }
            }
            
            if (!ret.length) {
				ret[0] = 'all';
            }
            
            return ret
        },
        
        loadAjax: function(myurl)
        {
			var me = this;

			$.ajax({ url: $('form.list-selector').attr('action') + 'update/' + myurl, 
                     cache: false, context: this,
                     data: { 'AJAX-REQUEST': me.settings.type },
                     success: function() {
                        container = ($('#product-list')).attr('innerHTML', arguments[0]);
                        $('.replace-me-to-image')
								.imageloader({ width: me.settings.img_width, 
											   height: me.settings.img_height 
								});
                        $(".pager .move").click(function() {
							me.loadPage(parseInt($(this).html()) - 1);
						});
						$(".pager .previous").click(function() {
							me.loadPage(parseInt($(this).attr('alt')));
						});
						
						$(".pager .next").click(function() {
							me.loadPage(parseInt($(this).attr('alt')));
						});
                        this.enabled = true;
                     }
            });
        }
    }
      
    $('.msg-container').click(function() {
		$(this).hide();
    });
});

