Ext.namespace('Shopwinkelinfo.Review');

Shopwinkelinfo.Review.Edit = function(){
	
	var main_win;
	
	var edit_frm;
	
	var slider_keuken;
	var slider_wijnkaart;
	var slider_personeel;
	var slider_menukaart;
	var slider_sfeer;
	var slider_netheid;
	var slider_algemeen;
	var slider_bediening;
	
	var init_config = {};
	/***************************************private variables************************************
	 *	Example:																				*
	 *  	var varName;																		*
	 *  	var varName2:'initial_value';														*
	 ***************************************private variables***********************************/

	/**************************************private functions*************************************
	 *	Example:								   												*
	 *		var funcName = function () {														*
	 *			commandos etc..;																*
	 *		};																					*
	 **************************************private functions************************************/
	var updateBeoordeling = function(veld_beoordeling, value) {
		var gemiddeld = 0;
		// get values
		var beoordeling_keuken    = Ext.getCmp('dlg_recensie_slider_keuken').getValue();
		var beoordeling_wijnkaart = Ext.getCmp('dlg_recensie_slider_wijnkaart').getValue();
		var beoordeling_personeel = Ext.getCmp('dlg_recensie_slider_personeel').getValue();
		var beoordeling_menukaart = Ext.getCmp('dlg_recensie_slider_menukaart').getValue();
		var beoordeling_sfeer 	  = Ext.getCmp('dlg_recensie_slider_sfeer').getValue();
		var beoordeling_netheid	  = Ext.getCmp('dlg_recensie_slider_netheid').getValue();
		var beoordeling_algemeen  = Ext.getCmp('dlg_recensie_slider_algemeen').getValue();
		var beoordeling_bediening = Ext.getCmp('dlg_recensie_slider_bediening').getValue();
			
		// hoeveel waardes 
		var aantal = 8;
		
		Ext.getCmp('dlg_recensie_html_'+veld_beoordeling).update('Beoordeling: ' + value);
		
		// bereken het gemiddelde cijfer
		var gemiddelde = Math.round((beoordeling_bediening + beoordeling_algemeen + beoordeling_netheid + beoordeling_sfeer + beoordeling_menukaart +beoordeling_personeel +beoordeling_keuken + beoordeling_wijnkaart + beoordeling_personeel + beoordeling_menukaart) / aantal *10) / 10  

		Ext.getCmp('dlg_recensie_slider_totaal_gemiddelde').update('Gemiddeld: ' + gemiddelde);
	};		

	
	var onClickOkBtn = function(){
		var btn_opslaan = this.id;
		
		if(edit_frm.getForm().isValid() ) {		
			var data = edit_frm.getForm().getValues();
			
//			data = Ext.apply(data, {
//				category_id: order_frm.getForm().findField('category_id').getValue()
//			});
			
			Shopwinkelinfo.Direct.Review.editReview(data.name, data.description, data.email, function(response, e){
				if(e.status) {
					Ext.Msg.alert('Error', 'Uw review is succesvol binnengekomen bij de redactie. Deze al na goedkeuring zichtbaar worden op de website', function(btn) {
						if(btn == 'ok') {
							main_win.close();
						}
					});
				} else {
					Ext.Msg.alert('Error', e.message);
				}
			});
		} else {
			Ext.Msg.show({
			   	title	:	'Gegevens ongeldig',
	   			msg		:	'Niet alle velden zijn correct ingevuld.',
	   			buttons	:	Ext.Msg.OK,
		   		icon	:	Ext.MessageBox.WARNING,
				modal	:	true
			});
		}	
    };	
	/****************************************** Public space ************************************
	 *	Hieronder komt alles wat public is. Dus bereikbaar buiten deze klasse					*
	 *******************************************************************************************/
    return {
    	
		/********************** public properties, e.g. strings to translate ************************
		 * Voorbeeld:																				*
		 * 		propertyNaam : 'waarde',															*
		 * 		propertyNaam2 : 'waarde2',															*
		 * 																							*
		 * LET OP: Alle teksten die gebruikt worden moeten hier als public property worden 			*
		 * 		aangemaakt. Dit maakt het eenvoudig mogelijk om in een later stadium de 			*
		 * 		applicatie meertalig te maken.														*
		 *******************************************************************************************/
    	
    	
	
		/*****************************************public methods*************************************
		 * Publieke functies moeten hieronder worden ingevoerd										*
		 * Voorbeeld:																				*
		 * naam : function (param1,param2) {														*
		 * 		code;																				*
		 * },																						*
		 *******************************************************************************************/

    	init: function (config) {
	    	
			init_config = config || {};

			slider_personeel = new Ext.Slider({
				id			: 'dlg_recensie_slider_personeel',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('personeel', value);
					}
				}
			});
			
			slider_wijnkaart = new Ext.Slider({
				id			: 'dlg_recensie_slider_wijnkaart',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('wijnkaart', value);
					}
				}
			});
			
			slider_sfeer = new Ext.Slider({
				id			: 'dlg_recensie_slider_sfeer',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('sfeer', value);
					}
				}
			});
			
			
			slider_keuken = new Ext.Slider({
				id			: 'dlg_recensie_slider_keuken',
				width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('keuken', value);
					}
				}
			});
			
			slider_menukaart = new Ext.Slider({
				id			: 'dlg_recensie_slider_menukaart',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('menukaart', value);
					}
				}
			});
			
			slider_netheid = new Ext.Slider({
				id			: 'dlg_recensie_slider_netheid',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('netheid', value);
					}
				}
			});
			
			slider_algemeen = new Ext.Slider({
				id			: 'dlg_recensie_slider_algemeen',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('algmeen', value);
					}
				}
			});
			
			slider_bediening = new Ext.Slider({
				id			: 'dlg_recensie_slider_bediening',
		        width		: 250,
		        increment	: 1,
		        value		: 5,
		        minValue	: 0,
		        maxValue	: 10,
		        plugins		: new Ext.slider.Tip({
		        }),
		        listeners	: {
					change : function(t, value) {
						updateBeoordeling('bediening', value);
					}
				}
			});			
			
			edit_frm = new Ext.form.FormPanel({
				width		: 580,
				resizable	: true,
		        closable	: true,
				padding		: 10,
				labelWidth	: 100,
				items		: [{
					xtype		:	'textfield',
					name		:	'name',
					fieldLabel	:	'Uw naam',
					width		:	250,
					allowBlank	:	false
				},{
				    xtype		:	'htmleditor',
				    fieldLabel	:	'Uw mening',
				    name		:	'description',
				    value		:	'Schrijf hier iets over de webwinkel, (levertijd, service etc)',
				    height		:	150
				 },{
					xtype		:	'textfield',
					vtype		:	'email',
					name		:	'email',
					fieldLabel	:	'Email',
					width		:	250,
					allowBlank	:	false
				}]
			});

			var panel = new Ext.Panel({
				layout	: 'border',
				width	: 580,
				border	: false,
				height	: 125,
				items: [{
					region		: 'center',
					border		: false,
					layout		: 'fit',
					items		: [edit_frm]
				}]
			});				
			
			main_win = new Ext.Window({
				title		: 'Recensie schrijven',
            	width		: 720,
				height		: 340,
				resizable	: false,
				stateful	: false,
				modal		: true,
	        	layout		: 'fit',				
				border		: false,
				items		: panel,
				buttons: [{
					text	: 'Opslaan',
					handler	: function() {
						onClickOkBtn();	
					}
	   			},{
                   text: 'Sluiten',
                   handler: function(){
                	   main_win.close();
                   }
	   			}]
							       		
	 	 	});
			
			main_win.show(); 	
				
			
		}
	}; //Publicspace
}();
