
	var molliePayment = Class.create({
		
		initialize : function(container){
			this.container = container;
		},
		
		startPayment: function(orderID){
			this.orderID = orderID;
			var wpsRPC = new wps.rpc;
			wpsRPC.debug =true;
			wpsRPC.createCall('mollie', this.setBankSelect.bind(this), this);
			wpsRPC.call('startPayment', 'orderID=' + orderID);
		},
		
		setBankSelect : function(req){
			this.container.show();
			this.container.update("<p>Kies via welke bank je wenst te betalen:</p>")
			this.bankSelect = new Element('select');
			$A(req.responseJSON).each(
				(function(token){
					var option = new Element('option', {value:token.bankCode}).update(token.bankName);
					this.bankSelect.insert(option);
				}).bind(this)
			)
			this.container.insert(this.bankSelect);
			var submit = new Element('button').update('Volgende> ');
			this.container.insert(submit);
			submit.observe('click', this.requestPayment.bindAsEventListener(this))
		},
		
		requestPayment : function(event){
			var elem = event.element();
			elem.update("Bezig met aanvragen betaling.");
			elem.disabled = true;
			this.bankSelect.disabled = true;
			this.choosenBank = this.bankSelect.getValue();
			
			var wpsRPC = new wps.rpc;
			wpsRPC.debug =true;
			wpsRPC.createCall('mollie', this.openURI.bind(this), this);
			wpsRPC.call('requestPayment', 'bankCode=' + this.choosenBank, 'orderID=' + this.orderID);
		},
		
		openURI : function(req){
			var URI = req.responseJSON.mollieURI;
			if (confirm('De betaling is aangevraagd, je wordt nu doorgestuurd naar een beveiligde pagina waar je met internetbankieren kunt afrekenen, als je klaar bent met de betaling kom je vanzelf weer terug op deze site.')){
				this.container.update("Betaling in gang gezet.")
				window.location.href = URI;
			}else{
				this.container.update("Betaling afgebroken.")
			}
		}
		
	})
