/* 
** JavaScript for Sort of List
** Uses mootools v1.11
** build 20080413
*/

document.write('<link rel="stylesheet" href="/styles/js.css" type="text/css" media="screen" />');

String.extend({
	getHash : function() {
		var hash = this.split('#');
		return hash[1] || false;
	}
});


// ----- GLOBAL OBJECT

var SOL = new Hash;


// ----- MAKE ORPHAN ITEMS

SOL.set('Orphanage',{
	selectors: ['ul.changelist'],
	lists: undefined,
	init: function() {
		this.lists = $(this.selectors.join(','));
		if (!this.lists) return;
		
		this.lists.each(function(el){
			el.addClass('js-on');
			el.getElement('li img').remove();
		},this);
	}
});


SOL.set('Unorder',{
	init: function() {
		$$('ul.changelist li').each(function(li) {  
			li.addEvent('mouseenter', function() {  
		    	li.addClass('unorder');  
		 	});  
		 	li.addEvent('mouseleave', function() {  
		    	li.removeClass('unorder');  
		    });  
		},this);
	}
});

SOL.set('Check',{
	init: function() {
		$$('ul.changelist li input').each(function(li) {  
			li.addEvent('click', function() {  
				if (this.checked == true) 
					{ 
				    	li.getParent().addClass('checked');  
					} 
					else
					{
				    	li.getParent().removeClass('checked');  
					}
				
		 	});  
		},this);
	}
});



SOL.set('AisleReorder',{
	init: function() {
		new Sortables($('aisle'), {
			constrain: false,
		    clone: true,
		    revert: true,
			onComplete: function() {
				var serial = [];
				this.list.getChildren().each(function(el, i){
					serial[i] = el.getProperty('id').substring(3);
				});
				//callBack('Items Reorderd!');
				
				var myXhr = new Request({method: 'post', url: window.location.href.replace(/edit/,'reorder_cat')});
				myXhr.send('ordered_category_list='+serial);
			}
		
		});
	}
});

SOL.set('ItemsReorder',{
	init: function() {
		var uls = $$('ul.items');
		new Sortables(uls, {
			constrain: false,
		    clone: true,
		    revert: true,
			onComplete: function() {
				var serial = [];
				this.list.getChildren().each(function(el, i){
					serial[i] = el.getProperty('id').substring(4);
				});
				//callBack('Items Reorderd!');
				//alert(this.list.id.substring(4) + ':' + serial);
				var myXhr = new Request({method: 'post', url: window.location.href.replace(/edit/,'reorder_items')});
				myXhr.send('item_list='+serial+'&'+'category_id='+this.list.id.substring(4));
			}			
		});
	}
});


// ----- INITIATE HASH 

SOL.each(function(obj,key){
	window.addEvent('domready',obj.init.bind(obj));
});