Ext.apply(Ext.form.VTypes, { password : function(val, field) { if (field.initialPassField) { var pwd = Ext.getCmp(field.initialPassField); return (val == pwd.getValue()); } return true; }, passwordText : 'Пароль повторен не правильно!' }); Ext.onReady(function(){ Ext.QuickTips.init(); var win; var button = Ext.get('get_card'); var link = Ext.get('get_registration'); var countries = new Ext.form.ComboBox({ typeAhead: true, triggerAction: 'all', lazyRender:true, mode: 'local', store: new Ext.data.ArrayStore({ id: 0, fields: [ 'id', 'name' ], data: [ [16, 'Австралия'], [17, 'Австрия'], [2, 'Азербайджан'], [18, 'Албания'], [19, 'Алжир'], [232, 'Американские Виргинские острова'], [182, 'Ангила'], [20, 'Ангола'], [146, 'Андорра'], [183, 'Антарктида'], [184, 'Антигуа и Барбуда'], [210, 'Антильские острова'], [21, 'Арабские Эмираты'], [22, 'Аргентина'], [3, 'Армения'], [23, 'Аруба'], [24, 'Афганистан'], [25, 'Багамские острова'], [26, 'Бангладеш'], [27, 'Барбадос'], [145, 'Бахрейн'], [4, 'Беларусь'], [147, 'Белиз'], [28, 'Бельгия'], [29, 'Бенин'], [30, 'Бермудские острова'], [31, 'Болгария'], [32, 'Боливия'], [33, 'Босния и Герцеговина'], [149, 'Ботсвана'], [34, 'Бразилия'], [187, 'Британские Виргинские острова'], [186, 'Британские территории в Индийском Океане'], [35, 'Бруней'], [150, 'Буркина Фасо'], [151, 'Бурунди'], [148, 'Бутан'], [233, 'Вануату'], [234, 'Ватикан'], [36, 'Великобритания'], [37, 'Венгрия'], [38, 'Венесуэлла'], [156, 'Восточный Тимор'], [39, 'Вьетнам'], [161, 'Габон'], [40, 'Гаити'], [41, 'Гамбия'], [162, 'Гана'], [43, 'Гваделупа'], [44, 'Гватемала'], [196, 'Гвиана'], [45, 'Гвинея'], [163, 'Гвинея-Биссау'], [46, 'Германия'], [47, 'Гибралтар'], [48, 'Голландия'], [42, 'Гондурас'], [49, 'Гонконг'], [50, 'Гренада'], [51, 'Гренландия'], [52, 'Греция'], [5, 'Грузия'], [53, 'Гуана'], [54, 'Дания'], [155, 'Джибути'], [55, 'Домениканская Республика'], [193, 'Доминика'], [56, 'Египет'], [57, 'Заир'], [58, 'Замбия'], [180, 'Западная Сахара'], [59, 'Зимбабве'], [60, 'Израиль'], [61, 'Индия'], [62, 'Индонезия'], [63, 'Иордания'], [64, 'Ирак'], [65, 'Иран'], [66, 'Ирландия'], [67, 'Исландия'], [68, 'Испания'], [69, 'Италия'], [70, 'Йемен'], [189, 'Кабо-Верде'], [6, 'Казахстан'], [71, 'Каймановы острова'], [72, 'Камерун'], [73, 'Канада'], [172, 'Катар'], [74, 'Кения'], [75, 'Кипр'], [7, 'Киргизстан'], [200, 'Кирибати'], [76, 'Китай'], [191, 'Кокосовые острова'], [77, 'Колумбия'], [78, 'Комбоджия'], [153, 'Коморос'], [79, 'Конго'], [164, 'Корея (Северная)'], [80, 'Корея (Южная)'], [81, 'Коста Рика'], [154, 'Кот-Д`ивуар'], [82, 'Куба'], [83, 'Кувейт'], [201, 'Лаос'], [8, 'Латвия'], [166, 'Лесото'], [84, 'Либерия'], [165, 'Ливан'], [167, 'Ливия'], [9, 'Литва'], [85, 'Лихтенштейн'], [86, 'Люксембург'], [205, 'Маврикий'], [87, 'Мавритания'], [88, 'Мадагаскар'], [206, 'Майотта'], [202, 'Макао'], [89, 'Македония'], [203, 'Малави'], [90, 'Малайзия'], [91, 'Мали'], [168, 'Мальдивы'], [92, 'Мальта'], [204, 'Мартиника'], [169, 'Маршалские острова'], [93, 'Мексика'], [207, 'Микронезия'], [94, 'Мозамбик'], [10, 'Молдова'], [95, 'Монако'], [96, 'Монголия'], [208, 'Монтсеррат'], [97, 'Морокко'], [188, 'Мьянма'], [98, 'Намибия'], [209, 'Науру'], [99, 'Непал'], [170, 'Нигер'], [100, 'Нигерия'], [101, 'Нидерланды'], [102, 'Никарагуа'], [212, 'Ниуэ'], [103, 'Новая Зеландия'], [211, 'Новая Каледония'], [104, 'Норвегия'], [171, 'Оман'], [185, 'Остров Буве'], [213, 'Остров Норфолк'], [216, 'Остров Питкэрн'], [190, 'Остров Рождества'], [218, 'Остров Св.Елены'], [192, 'Острова Кука'], [221, 'Острова Сен-Пьер и Микелон'], [219, 'Острова Сент-Киттс и Невис'], [230, 'Острова Тёркс и Кайкос'], [235, 'Острова Уоллис и Футуна'], [199, 'Острова Херд и Макдоналд'], [226, 'Острова Шпицберген и Ян-Майен'], [105, 'Пакистан'], [214, 'Палау'], [215, 'Палестина'], [106, 'Панама'], [107, 'Папуа Новая Гвинея'], [108, 'Парагвай'], [109, 'Перу'], [110, 'Польша'], [111, 'Португалия'], [112, 'Пуэрто Рико'], [217, 'Реюньон'], [1, 'Россия'], [173, 'Руанда'], [113, 'Румыния'], [122, 'США'], [174, 'Самоа'], [223, 'Сан-Марино'], [220, 'Санта-Лючия'], [114, 'Саудовская Аравия'], [178, 'Свазиленд'], [175, 'Сейшеллы'], [115, 'Сенегал'], [222, 'Сент-Винсент и Гренадины'], [142, 'Сербия'], [116, 'Сингапур'], [117, 'Сирия'], [118, 'Словакия'], [119, 'Словения'], [224, 'Соломоновы острова'], [120, 'Сомали'], [121, 'Судан'], [177, 'Суринам'], [176, 'Сьерра-Леоне'], [11, 'Таджикистан'], [123, 'Тайвань'], [124, 'Тайланд'], [179, 'Танзания'], [227, 'Того'], [228, 'Токелау'], [229, 'Тонга'], [125, 'Тринидад и Тобаго'], [231, 'Тувалу'], [126, 'Тунис'], [12, 'Туркменистан'], [127, 'Турция'], [128, 'Уганда'], [13, 'Узбекистан'], [14, 'Украина'], [129, 'Уругвай'], [195, 'Фарерские острова'], [160, 'Фижи'], [130, 'Филиппины'], [131, 'Финляндия'], [194, 'Фолклендские осторова'], [132, 'Франция'], [197, 'Французская Полинезия'], [181, 'Хорватия'], [152, 'Центральноафриканская Республика'], [133, 'Чад'], [236, 'Черногория'], [134, 'Чехия'], [135, 'Чили'], [136, 'Швейцария'], [137, 'Швеция'], [138, 'Шри-Ланка'], [139, 'Эквадор'], [158, 'Экваториальная Гвинея'], [157, 'Эль Сальвадор'], [159, 'Эритрея'], [15, 'Эстония'], [140, 'Эфиопия'], [141, 'ЮАР'], [225, 'Южная Георгия и Южные Сандвичевы острова'], [198, 'Южные Французские территории'], [143, 'Ямайка'], [144, 'Япония'] ] }), valueField: 'id', displayField: 'name' }); var step1 = new Ext.form.FieldSet({ xtype:'fieldset', title: 'Регистрационные данные', autoHeight:true, defaults: {width: 190}, defaultType: 'textfield', items :[{ fieldLabel: 'Логин', name: 'login', allowBlank: false },{ fieldLabel: 'Пароль', name: 'password', id: 'password', inputType: 'password', vtype:'password', allowBlank: false },{ fieldLabel: 'Подтверждение пароля', name: 'password_confirm', inputType: 'password', vtype:'password', initialPassField: 'password', allowBlank: false }, { fieldLabel: 'E-mail', name: 'email', vtype:'email', allowBlank: false }, { fieldLabel: 'Новости', name: 'news_subscribe', xtype: 'checkbox', checked: true, boxLabel: 'подписаться на рассылку' }] }); var step2 = new Ext.form.FieldSet({ xtype:'fieldset', title: 'Получить "Карту Здоровья"', checkboxToggle:true, collapsed: true, autoScroll: true, expand: function(animate){ if(!this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforeexpand', this, animate) === false){ return; } var doAnim = animate === true || (animate !== false && this.animCollapse); this.el.removeClass(this.collapsedCls); this.beforeEffect(); this.onExpand(doAnim, animate); for (var obj in this.items.items) { if (this.items.items[obj].allowBlank) this.items.items[obj].allowBlank = false; } return this; }, collapse : function(animate){ if(this.collapsed || this.el.hasFxBlock() || this.fireEvent('beforecollapse', this, animate) === false){ return; } var doAnim = animate === true || (animate !== false && this.animCollapse); this.beforeEffect(); this.onCollapse(doAnim, animate); for (var obj in this.items.items) { if (!this.items.items[obj].allowBlank) this.items.items[obj].allowBlank = true; } return this; }, height: 190, defaults: {width: 190}, defaultType: 'textfield', items :[{ fieldLabel: 'Имя', name: 'fname' },{ fieldLabel: 'Фамилия', name: 'lname' },{ xtype: 'radiogroup', fieldLabel: 'Пол', items: [ {boxLabel: 'Женский', name: 'sex', inputValue: 'f', checked: true}, {boxLabel: 'Мужской', name: 'sex', inputValue: 'm'} ] },{ fieldLabel: 'Дата роджения', name: 'birthday', xtype: 'datefield' },countries,{ fieldLabel: 'Город', name: 'city' },{ fieldLabel: 'Улица', name: 'street' },{ fieldLabel: 'Дом', name: 'house_no' },{ fieldLabel: 'Квартира', name: 'app_no' },{ fieldLabel: 'Почтовый индекс', name: 'postcode' },{ fieldLabel: 'Мобильный телефон', name: 'mobile_phone' },{ fieldLabel: 'Ваши интересы', name: 'interests' },{ fieldLabel: 'Фотография', name: 'photo', xtype: 'fileuploadfield' }] }); var regform = new Ext.FormPanel({ labelWidth: 120, // label settings here cascade unless overridden url:'/user/extjs_registration.php', fileUpload: true, frame:true, title: 'Данные нового пользователя', bodyStyle:'padding:5px 5px 0', width: 400, items: [step1,step2] }); var win = new Ext.Window({ applyTo:'register_win', modal: true, layout:'fit', width:400, height:500, closeAction:'hide', plain: true, items: regform, buttons: [{ text: 'Зарегистрироваться', type: 'submit', clientValidation: true, handler: function() { regform.getForm().submit({ waitMsg:'Обработка данных...', reset : false, success : function() { location='/user/profile.php'; win.hide(); }, failure: function(form, action){Ext.Msg.alert('Ошибка',"Проверьте правильность ввода данных.")} }); } },{ text:'Закрыть', handler: function(){win.hide();} }] }); button.on('click', function(){ win.show(this); }); if (link){ link.on('click', function(){ win.show(this); }); } });