
	var persclubPrivateListShare = Class.create(persclubListShare, {

		initialize : function(container){
			this.instID = 'persclubPrivateListShare.' + parseInt(Math.random()*1000000);
			this.container = container;
			this.myCommand = 'perclubPrivateBasket'; 
		},
		
		drawUserList : function(req){
			this.users = req.responseJSON.users;
			this.cmsUsers = req.responseJSON.editusers;
			
			this.container.update('');
			this.container.insert("<h1>Privelijsten tussen gebruikers kopi&euml;ren</h1>");
			
			var srcContainer = new Element('div', {id:this.instID+"_srcContainer"});
			this.container.insert(srcContainer);
			
			var span = new Element('span', {className:'srcList'}).update("Kies de gebruiker van wie u een lijst wilt kopi&euml;ren:<br/>")
			srcContainer.insert(span);

			this._drawUserList('srcUserList', this.container, this.getUserBasket.bindAsEventListener(this))
		},
		
		setOK : function(req){
			if (req.responseJSON.message == 'true'){
				this.container.update("<div> <b>Lijst succesvol gekopi&euml;rd!</b></div>");
				var link = new Element('a', {href:'#'}).update("Nog een lijst kopi&euml;ren.");
				this.container.insert(link);
				link.observe('click', (function(){
					var listShare = new persclubPrivateListShare(this.container);
					listShare.draw();
				}).bind(this))
			}else{
				alert("Er is een fout opgetreden bij het opslaan;" + req.responseJSON.message);
			}
		}		
		
		/*
		draw : function(){
			// get userlist
			this.container.update('');
			var RPCObj = new rpc;
			RPCObj.debug = true;
			RPCObj.attachWaiter(this.waiter, this);
			RPCObj.attachUnWaiter(this.unWaiter, this);
			RPCObj.createCall(this.myCommand, this.drawUserList.bind(this), this);
			RPCObj.call('getBasketUserList');
		},


		
		_drawUserList : function(type, container, callBack){
			this[type] = new Element('select', {id:this.instID+"_"+type});
			this[type].insert(new Element('option', {value:0}).update(" .. kies een gebruiker .."));
			container.insert(this[type]);
		
			this.users.each(
				(function(userObj){
					var opt = new Element('option', {value:userObj.id}).update(userObj.naam +"(" + userObj.bedrijf + ")");
					this[type].insert(opt);
				}).bind(this)
			)
			this.cmsUsers.each(
				(function(userObj){
					var opt = new Element('option', {value:userObj.id}).update(userObj.naam + " (cms gebruiker)");
					opt.isAdmin = true;
					this[type].insert(opt);
				}).bind(this)
			)

			this[type].observe('change', callBack);
		},
		
		getUserBasket : function(e){
			var uid = e.element().getValue();
			var isAdmin = 0; 
			if (e.element().options[e.element().selectedIndex].isAdmin) isAdmin = 1;

			if (this.srcBasketSelect) {
				$(this.instID + '_srcBasketContainer').parentNode.removeChild($(this.instID + '_srcBasketContainer'));
				this.srcBasketSelect = null;
			}
			if (this.destUserList) {
				$(this.instID + '_destUserContainer').parentNode.removeChild($(this.instID + '_destUserContainer'));
				this.destUserList= null;
			}
			if (uid > 0){
				this.srcBasketSelect = new Element('blink').update("<p>Een ogenblik, bezig met ophalen lijsten..<p>");
				this.container.insert(this.srcBasketSelect);
				
				var RPCObj = new rpc;
				RPCObj.debug = true;
				RPCObj.attachWaiter(this.waiter, this);
				RPCObj.attachUnWaiter(this.unWaiter, this);
				RPCObj.createCall(this.myCommand, this.drawBasketList.bind(this), this);
				RPCObj.call('getBasketListForCopy', 'uid='+uid, 'isAdmin=' + isAdmin);
			}
		},
		
		drawBasketList : function(req){
			this.baskets = req.responseJSON;
			
			if (this.srcBasketSelect) this.srcBasketSelect.remove(); /// could also be a blink
			if (!this.baskets){
				var basketContainer = new Element('div', {id:this.instID+"_srcBasketContainer"}).update("Geen lijsten gevonden bij deze gebruiker.");
				this.container.insert(basketContainer);
				return;
			}
			
			var basketContainer = new Element('div', {id:this.instID+"_srcBasketContainer"});
			this.container.insert(basketContainer);
			basketContainer.insert("<span>Kies de lijst die u wilt kopi&euml;ren:</span><br/>");

			this.srcBasketSelect = new Element('select', {id:this.instID+"_srcBasketList"});
			basketContainer.insert(this.srcBasketSelect);
			this.srcBasketSelect.insert(new Element('option', {value:0}).update(" .. kies een lijst .."));
			
			this.baskets.data.each(
				(function(basket){
					if (basket.items && basket.items.length > 0){
						var count = basket.items.length;
					}else{
						var count = "geen ";
					}
					var opt = new Element('option', {value:basket.id}).update(basket.name + "(" + count + " items)");
					this.srcBasketSelect.insert(opt);
					
				}).bind(this)
			)
			
			this.srcBasketSelect.observe('change', this.drawDestUserList.bindAsEventListener(this));			
			
		},
		
		drawDestUserList : function(e){
			var basketID = e.element().getValue();

			if (this.destUserList) {
				$(this.instID + '_destUserContainer').parentNode.removeChild($(this.instID + '_destUserContainer'));
				this.destUserList= null;
			}
		
			if (basketID > 0){
				var destUserContainer = new Element('div', {id:this.instID+"_destUserContainer"});
				this.container.insert(destUserContainer);
				
				destUserContainer.insert("<span>Met wie wilt u deze lijst kopi&euml;ren?</span><br/>");
				this._drawUserList('destUserList', destUserContainer, (function(){$(this.instID+'_saveBtn').show()}).bind(this));
				
				destUserContainer.insert("<br/><br/>");
				
				var btn = new Element("button", {id:this.instID+"_saveBtn"}).update("Lijst kopi&euml;ren");
				destUserContainer.insert(btn);
				btn.observe('click', this.shareList.bindAsEventListener(this));
				btn.hide();
			}
		},
		
		shareList : function(e){
			var basketID = this.srcBasketSelect.getValue();
			var destUID =  this.destUserList.getValue();
			var isAdmin = 0;
			if (this.destUserList.options[this.destUserList.selectedIndex].isAdmin) isAdmin = 1
			var RPCObj = new rpc;
			RPCObj.debug = true;
			RPCObj.attachWaiter(this.waiter, this);
			RPCObj.attachUnWaiter(this.unWaiter, this);
			RPCObj.createCall(this.myCommand, this.setOK.bind(this), this);
			RPCObj.call('shareList', 'basketID=' + basketID, 'destUID=' + destUID, 'isAdmin=' + isAdmin);
		},
		
		setOK : function(req){
			if (req.responseJSON.message == 'true'){
				this.container.update("<div> <b>Lijst succesvol gekopi&euml;rd!</b></div>");
				var link = new Element('a', {href:'#'}).update("Nog een lijst kopi&euml;ren.");
				this.container.insert(link);
				link.observe('click', (function(){
					var listShare = new persclubListShare(this.container);
					listShare.draw();
				}).bind(this))
			}else{
				alert("Er is een fout opgetreden bij het opslaan;" + req.responseJSON.message);
			}
		},
		
		waiter : function (){
			$('persWaiter').show();
		},
		
		unWaiter : function (){
			$('persWaiter').hide();
		}
		*/
	})
	

