var Shoppinglist = Class.create();
function addToShoppinglist(urlShoppingList)
{
	var url = urlShoppingList;
	TINY.box.show(url,1,300,200,1);
	
	return false;
}
Shoppinglist.prototype = {
	initialize: function(form, requestUrl) {
		this.requestUrl = requestUrl;
		this.form = form;
		this.onSave = this.nextStep.bindAsEventListener(this);
		this.onEdit = this.processEdit.bindAsEventListener(this);
		this.onDelete = this.processDelete.bindAsEventListener(this);
		this.onAddItem = this.nexStepAddItem.bindAsEventListener(this);
		this.onDeleteItem = this.nextDeleteItem.bindAsEventListener(this);
	}, 
	
	save: function() {
		var validator = new Validation(this.form);
		if (validator.validate()) {
			var request = new Ajax.Request(
				this.requestUrl,
				{
					method:'post',
					onComplete: '',
					onSuccess: this.onSave,
					onFailure: '',
					parameters: Form.serialize(this.form)
				}
			);
		}
	}, 
	
	addItem : function(form,url){
		var validator = new Validation(form);
		if (validator.validate()) {
			var request = new Ajax.Request(
				url,
				{
					method:'post',
					
					onComplete: '',
					onSuccess: this.onAddItem,
					onFailure: '',
					parameters: Form.serialize(form)
				}
			);
		}
	},
	nexStepAddItem: function(transport){
		if (transport && transport.responseText){
			try{
				response = eval('(' + transport.responseText + ')');
			}
			catch (e) {
				response = {};
			}
		}
		if (response.error){
			alert(response.error_message);
			TINY.box.hide();
			return false;
		}
		if (response.success) {
			TINY.box.hide();
			return false;
			
		}		
	},
	deleteitem :function(action,urldelete,item_id){
		if(action =='yes'){
			var request = new Ajax.Request(
				urldelete,
				{
					method:'post',
					onComplete: '',
					onSuccess: this.onDeleteItem,
					onFailure: this.hideLoading()
				}
			);	
			$('dragable_item_'+item_id).ancestors()[0].remove();
			TINY.box.hide();			
		}else{
			TINY.box.hide();
			return ;
		}		
	},
	nextDeleteItem : function(transport){
		this.hideLoading();
		if (transport && transport.responseText){
			try{
				response = eval('(' + transport.responseText + ')');
			}
			catch (e) {
				response = {};
			}
		}
		if (response.error){
			alert(response.error_message);
			return false;
		}
		if (response.success) {
			$('dragable_item_'+response.item_id).ancestors()[0].ancestors()[0].remove();
			TINY.box.hide();
			return false;
			
		}	
	},
	deleteList : function(action,urldelete){
		if(action == 'yes'){
			var request = new Ajax.Request(
				urldelete,
				{
					method:'post',
					onComplete: '',
					onSuccess: this.onDelete,
					onFailure: ''
				}
			);				
		}else{
			TINY.box.hide();
			return ;
		}
	},
	edit: function(){
		var validator = new Validation(this.form);
		if (validator.validate()) {
			var request = new Ajax.Request(
				this.requestUrl,
				{
					method:'post',
					onComplete: '',
					onSuccess: this.onEdit,
					onFailure: '',
					parameters: Form.serialize(this.form)
				}
			);
		}			
	},
	processDelete: function(transport){
		if (transport && transport.responseText){
			try{
				response = eval('(' + transport.responseText + ')');
			}
			catch (e) {
				response = {};
			}
		}
		if (response.error){
			alert(response.error_message);
			return false;
		}
		if (response.success) {
			
			var data = {
				id   : response.shoppinglist_id,
				name : response.title 
			}
			$('row_'+data.id).remove();
			if($$('.items-shoppinglist').length>0){
				$('empty_row_shoppinglist').hide();
			}else{
				$('empty_row_shoppinglist').show();
			}			
			TINY.box.hide();
			return false;
			
		}			
	},
	processEdit: function(transport) {
		if (transport && transport.responseText){
			try{
				response = eval('(' + transport.responseText + ')');
			}
			catch (e) {
				response = {};
			}
		}
		if (response.error){
			alert(response.error_message);
			return false;
		}
		if (response.success) {
			
			var data = {
				id   : response.shoppinglist_id,
				name : response.title 
			}
			$('row_name_'+data.id).update(data.name);
			TINY.box.hide();
			
		}
	},
	
	nextStep: function(transport) {
		if (transport && transport.responseText){
			try{
				response = eval('(' + transport.responseText + ')');
			}
			catch (e) {
				response = {};
			}
		}
		if (response.error){
			alert(response.error_message);
			return false;
		}
		if (response.success) {
			
			var data = {
				id   		: response.shoppinglist_id,
				name 		: response.title,
				edit_url 	: response.edit_url,
				delete_url	: response.delete_url,
				view_url	: response.view_url,	
				reorder_url	: response.reorder_url
			}
			var TemplateRow = getRowTemlate(data);
			
			$('shopping-last-row').insert({'before':TemplateRow});
			if($$('.items-shoppinglist').length>0){
				$('empty_row_shoppinglist').hide();
			}else{
				$('empty_row_shoppinglist').show();
			}
			TINY.box.hide();
		}
	},
	showLoading : function(){
		$('box_action_progress').show();
	},
	hideLoading : function(){
		$('box_action_progress').hide();
	}	
}
var itemList = new Shoppinglist('','');
function changeReorder(type,element)
{
	if(type===0){
		if(element.value){
			$("order_id").value ="";
			$("order_id").removeClassName("validate-select");
		}
	}
	if(type===1){
		if(element.value !=''){
			$("shoppinglist_id").value = "";
			$("shoppinglist_id").removeClassName("validate-select");
		}
	}
	
}

function makeRapidReorder(){
	var mask = false;
	if($("order_id").value !=0){
		mask = true;
	}
	if($("shoppinglist_id").value !=0){
		mask = true;
	}	
	if(mask){
		var confirmResult = confirm('Do you want to instantly reorder this shopping list?');
		if(confirmResult){
			$("shoppinglist-reorder-form").submit();
			TINY.box.hide();
		}else{
			TINY.box.hide();
			return false;
		}
	}
}
