sbs.requests.casco_form = true;

function createCascoForm(){
	var car_make_c = {
		xtype: 'container',
		layout: 'hbox',
		fieldLabel: 'Автомобиль',
		items: [{
			id: 'sbs_make_cb',
			name: 'make',
			store: new Ext.data.JsonStore({
				// store configs
				url: 'corp/ds',
				baseParams: {t: 1},
				// reader configs
				fields: ['id', 'name'],
				idProperty: 'id',
				//data: {makes: [{id: 1, name: 'something'}, {id:2, name: 'another'}]},
				root: 'makes'
			}),
			valueField: 'id',
			hiddenName: 'id_make',
			displayField:'name',
			mode: 'remote',
			triggerAction: 'all',
			emptyText: 'Укажите Марку...',
			editable: false,
			selectOnFocus: true,
			forceSelection: true,
			xtype: 'combo',
			listeners: {
				select: function(cb, r, idx){
					var model_cb = Ext.getCmp('sbs_make_model_cb');
					model_cb.clearValue();
					model_cb.getStore().load({params: {id_make: r.get('id')}});
				}
			},
			validator: function (val){
				return this.getValue() != '' && val != this.emptyText;
			}	
		},{
			id: 'sbs_make_model_cb',
			name: 'model',
			hiddenName: 'id_model',
			xtype: 'combo',
			editable: 'false',
			store: new Ext.data.JsonStore({
				// store configs
				url: 'corp/ds',
				baseParams: {t: 2},
				// reader configs
				fields: ['id', 'name'],
				idProperty: 'id',
				root: 'models'
			}),
			valueField: 'id',
			displayField:'name',
			mode: 'local',
			triggerAction: 'all',
			emptyText: 'Укажите Модель...',
			editable: false,
			selectOnFocus: true,
			validator: function (val){
				return this.getValue() != '' && val != this.emptyText;
			}	
		}]
	};
	var car_fs = {
		xtype: 'fieldset', 
		layout: 'form',
		title: 'Ваш автомобиль',
		defaultType: 'textfield',
		items :[car_make_c,{
			fieldLabel: 'Год выпуска',
			store: [2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000],
			name: 'made_year',
			editable: false,
			triggerAction: 'all',
			mode: 'local',
			xtype: 'combo',
			width: 75,
			validator: function (val){
				return this.getValue() != '' && val != this.emptyText;
			}
		},{
			xtype: 'numberfield',
			allowBlank: true,
			fieldLabel: 'Стоимость',
			name: 'price',
			width: 75
		}]
	};
	var antitheft_fs = {
		xtype: 'fieldset',
		labelWidth: 25,
		title: 'Противоугонные системы',
		defaultType: 'checkbox',
		items: [{
			xtype: 'checkboxgroup',
			columns: 1,
			vertical: true,
			items: [{
				name: 'immobiliser',
				boxLabel: 'Штатный (заводской) иммобилайзер'
			}, {
				name: 'alarm',
				boxLabel: 'Электронная противоугонная система'
			}, {
				name: 'satellite',
				boxLabel: 'Спутниковая охранная система'
			}, {
				name: 'mech',
				boxLabel: 'Механическое противоугонное устройство'
			}]
		}]
	};
	var each_driver_p = {
		defaults: {
			bodyStyle: 'padding:5px'
		},
		fieldLabel: '1-й',
		xtype: 'container',
		layout: 'hbox',
		frame: false,
		items: [{
			xtype: 'combo'
			,emptyText: 'Пол'
			,editable: false
			,triggerAction: 'all'
			,mode: 'local'
			,store: new Ext.data.ArrayStore({
				id: 0
				,fields: ['id', 'name']
				,data: [[1, 'М (В браке)'],[2,'М'],[3, 'Ж (В браке)'],[4,'Ж']]
			})
			,valueField: 'id'
			,displayField: 'name'
			,hiddenName: 'id_gender'
			,name: 'gender'
			,width: 100
			,validator: function (val){
				return Ext.getCmp('sbs_multidrive_chb').getValue() || (this.getValue() != '' && val != this.emptyText);
			}	
		},{
			xtype: 'combo'
			,emptyText: 'Дети'
			,editable: false
			,triggerAction: 'all'
			,mode: 'local'
			,store: new Ext.data.ArrayStore({
				id: 0
				,fields: ['id', 'name']
				,data: [[1, 'Нет'],[2,'Есть']]
			})
			,valueField: 'id'
			,displayField: 'name'
			,hiddenName: 'kids'
			,width: 60
			,validator: function (val){
				return Ext.getCmp('sbs_multidrive_chb').getValue() || (this.getValue() != '' && val != this.emptyText);
			}	
		},{
			xtype: 'combo'
			,emptyText: 'Возраст'
			,editable: false
			,triggerAction: 'all'
			,mode: 'local'
			,store: new Ext.data.ArrayStore({
				id: 0
				,fields: ['id', 'name']
				,data: [[18,18], [19,19], [20,20], [21,21], [22,22],[23,23],[24,24],[25,25],[26,26],[27,27],[28,28],[29,29],[30,30],[31,31],[32,32],[33,33],[34,34],[35,35],[36,36],[37,37],[38,'Более 37']]
			})
			,valueField: 'id'
			,displayField: 'name'
			,hiddenName: 'id_age'
			,name: 'age'
			,width: 85
			,validator: function (val){
				return Ext.getCmp('sbs_multidrive_chb').getValue() || (this.getValue() != '' && val != this.emptyText);
			}	
		},{	
			xtype: 'combo'
			,emptyText: 'Стаж'
			,editable: false
			,triggerAction: 'all'
			,mode: 'local'
			,store: new Ext.data.ArrayStore({
				id: 0
				,fields: ['id', 'name']
				,data: [[1,'Менее года'], [2,1], [3,2], [4,3], [5,4],[6,5],[7,6],[8,7],[9,8],[10,9],[11,10],[12,'Более 10']]
			})
			,valueField: 'id'
			,displayField: 'name'
			,hiddenName: 'id_experience'
			,name: 'experience'
			,width: 95
			,validator: function (val){
				return Ext.getCmp('sbs_multidrive_chb').getValue() || (this.getValue() != '' && val != this.emptyText);
			}	
		},{
			xtype: 'button',
			text: 'Убрать',
			handler: function (b,e){
				if (driver_fs.items.getCount() > 1){
					driver_fs.remove(b.findParentByType('container'));
					driver_fs.items.each(function (item, idx){
						item.label.dom.innerHTML = String(idx+1)+"-й:";
					});
				}
			}
		}]
	};
	var driver_fs = new Ext.form.FieldSet({
		layout: 'form',
		frame: false,
		collapsed: false,
		floating: false,
		border: false,
		items: [each_driver_p],
		buttons: [{
			text: 'Добавить еще одного водителя', 
			fieldLabel: 'Еще один',
			handler: function (){
				var no = driver_fs.items.length+1;
				each_driver_p.fieldLabel = String(no)+'-й';
				driver_fs.add(each_driver_p);
				driver_fs.doLayout();
			}
		}]
	});	
 	var accepted_fs = new Ext.form.FieldSet({
		title: 'Водители',
		layout: 'form',
		labelWidth: 25,
		items: [{
			id: 'sbs_multidrive_chb',
			xtype: 'checkbox',
			name: 'multidrive',
			boxLabel: 'Мультидрайв (без ограничения)',
			listeners: {
				check: function(cb, checked){
					if (checked){
						driver_fs.collapse();
					} else {
						driver_fs.expand();
					}
				}
			}	
		}/*,{
			xtype: 'checkbox',
			boxLabel: 'Все очень взрослые и опытные'
		}*/, driver_fs]
	});
	
	var casco_form = new Ext.form.FormPanel({
		bodyStyle: 'padding:5px; color: #444444; background: transparent',
		id: 'sbs_casco_form',
		renderTo: 'casco_form',
		style: 'background:transparent;',
		url: 'fb',
		defaultType: 'textfield',
		collapsible: true,
		collapsed: true,
		title: "<span style='font-size:14px'>Получить наиболее выгодное предложение по КАСКО</span>",
		labelWidth: 100,
		//width: 500,
		border: false,
		defaults: {
		// applied to each contained item
			//width: 230,
			msgTarget: 'side'
		},
		items: [car_fs,antitheft_fs,accepted_fs,{
			xtype: 'hidden',
			name: 'n',
			value: sbs.id_node
		},{
			xtype: 'hidden',
			name: 's',
			value: sbs.id_site
		},{
			xtype: 'hidden',
			name: 't',
			value: 3
		}],
		buttons: [
			{
				text: 'Рассчитать',
				width: 200,
				height: 40,
				scope: this,
				handler: completeCascoForm
			}
		],
		layoutConfig: {
			labelSeparator: '~' // superseded by assignment below
		},
		// config options applicable to container when layout='form':
		hideLabels: false,
		labelAlign: 'right',   // or 'right' or 'top'
		labelSeparator: ':', // takes precedence over layoutConfig value
		labelPad: 2           // defaults to 5, must specify labelWidth to be honored
	});
}

function completeCascoForm (){
	var main_form = Ext.getCmp('sbs_casco_form');
	
	if (!main_form.getForm().isValid()){
		Ext.MessageBox.alert('Ошибка', 'Пожалуйста, поправьте все поля, помеченные красным. Эти данные нам необходимы.');
		return;
	}
	var details_form = new Ext.form.FormPanel({
		baseCls: 'x-plain',
		labelWidth: 100,
		url:'fb',
		labelAlign: 'right',
		defaultType: 'textfield',
		layout: 'form',
		items: [{
			xtype: 'displayfield',
			hideLabel: true,
			value: 'Уважаемый посетитель, теперь укажите ваши контактные данные, по которым мы сможем с вами связаться, после того как наш специалист проанализирует полученную от вас информацию для расчета КАСКО. Обо всех <b>спецпрограммах</b> вам сообщит наш консультант.'
		},{
			xtype: 'spacer',
			height: 10
		},{
			fieldLabel: 'Город'
			,allowBlanks: false
			,xtype: 'combo'
			,name: 'c'
			,emptyText: 'Укажите город'
			,editable: false
			,triggerAction: 'all'
			,width: 125
			,mode: 'local'
			,store: new Ext.data.ArrayStore({
				id: 0
				,fields: ['id', 'name']
				,data: [[1, 'Москва'],[2, 'Санкт-Петербург']]
			})
			,valueField: 'id'
			,displayField: 'name'
			,hiddenName: 'id_city'
			,validator: function (val){
				return this.getValue() != '' && val != this.emptyText;
			}
		},{
			fieldLabel: 'ФИО',
			allowBlank: false,
			name: 'fio',
			anchor:'100%'  // anchor width by percentage
		},{
			fieldLabel: 'Телефон',
			allowBlank: false,
			name: 'phone',
			anchor: '100%'  // anchor width by percentage
		},{
			fieldLabel: 'Email',
			name: 'email',
			anchor: '100%'  // anchor width by percentage
		},{
			xtype: 'textarea',
			fieldLabel: 'Ваши пожелания',
			hideLabel: false,
			name: 'message',
			anchor: (Ext.isIE6 ? '100%' : '100% -53')
		}]
	});
	var details_window = new Ext.Window({
		title: 'Отправка заявки на расчет КАСКО и персональную консультацию',
		width: 500,
		height:300,
		minWidth: 300,
		minHeight: 200,
		layout: 'fit',
		plain:true,
		bodyStyle:'padding:5px;',
		buttonAlign:'center',
		items: details_form,
		buttons: [{
			text: 'Отправить',
			handler: function(){
				if(details_form.getForm().isValid()){
					main_form.getForm().submit({
					params: details_form.getForm().getFieldValues(),
					timeout: 5,
					waitTitle: 'Подождите, пожалуйста',
					waitMsg: 'Идет отправка сообщения...',
					success: function(form, o){
							Ext.Msg.show({
							title:'Отправлено',
							msg: 'Ваше сообщение успешно отправлено.',
   							buttons: Ext.Msg.OK
							});
							details_window.close();
						},
					failure: function(form, o){
							Ext.MessageBox.alert('Сообщение НЕ отправлено', 'Сообщение не удалось отправить.');
						}
					});
				} else {
					Ext.MessageBox.alert('Ошибка', 'Пожалуйста, исправьте ошибки на форме.');
				}
			}
		},{
			text: 'Отменить',
			handler: function(){
				details_window.close();
			}
		}]
	});
	details_window.show();
}

function attachCascoFormTitleEvent ()
{
	var main_form = Ext.getCmp('sbs_casco_form');
	main_form.header.on('click', function (e,t,o){
		main_form.expand();
	});
	
}
