var MyAccountDialog = function(){
    var dialog;
    var form_myaccount;
    
    return {
    	show: function () {
	 			dialog = this.dialog;
	 			if(!dialog){
			    dialog = new Ext.BasicDialog("myaccount-dlg", { 
			      modal: false, width:500, height:330, shadow:false, draggable: true, resizable: false, collapsible: false, autoTabs:true, shadow: false
			    });
			    dialog.addKeyListener(27, dialog.hide, dialog);
			    MyAccountDialog.initDialog(dialog);
				}
				//dialog.show(ChatLayout.myAccountBtn.getEl().dom);
				dialog.show();
				this.dialog = dialog;
	 		},
	 		
	 		initDialog: function (dialog) {
	 			
	 			// Form Login
	 			form_myaccount = new Ext.form.Form({labelAlign: 'top', buttonAlign: 'left', url: '/pages/channel/_json.myaccount.php', fileUpload: true});
	 			Ext.form.Field.prototype.msgTarget = 'side';
	 			//var field_email = new Ext.form.TextField({emptyText: "Enter", allowBlank:false, vtype: 'email', fieldLabel: 'E-Mail', name: 'email',   width:190, required: true});
	 			
	 			var field_nick = new Ext.form.TextField({allowBlank:false, value: CurrentUser.Nick, fieldLabel: locStrings["nick"], name: 'nick',   width:190, required: true});
	 			var field_fullname = new Ext.form.TextField({value: CurrentUser.Row.FullName, fieldLabel: locStrings["full_name"], name: 'full_name',   width:190, required: true});
	 			var field_birthdate = new Ext.form.DateField({fieldLabel: locStrings["birth_date"], value: CurrentUser.Row.BirthDate, name: 'birth_date',   width:90, format: "m/d/Y",  required: true});
	 			var field_avatar = new Ext.form.TextField({fieldLabel: locStrings["photo"], name: 'photo',  inputType: "file", width:160, required: false });
	 			var field_city = new Ext.form.TextField({value: CurrentUser.Row.City, fieldLabel: locStrings["city"], name: 'city',   width:160, required: false});
	 			var field_gender = new Ext.form.ComboBox({
          fieldLabel: locStrings.gender,
          hiddenName:'gender',
          store: new Ext.data.SimpleStore({
              fields: ['gender', 'label'],
              data : [['Male', locStrings.gender_male], ['Female', locStrings.gender_female]]
          }),
          valueField: 'gender',
          displayField:'label',
          typeAhead: true,
          mode: 'local',
          triggerAction: 'all',
          emptyText:locStrings.select_gender,
          selectOnFocus:true,
          width:160,
          value: CurrentUser.Row.Gender
        });
	 				
	 			//var field_password = new Ext.form.TextField({fieldLabel: 'Password', allowBlank:false, name: 'password',   width:190, required: true, inputType: "password"});
	 			//var field_password = new Ext.form.TextField({fieldLabel: 'Password', allowBlank:false, name: 'password',   width:190, required: true, inputType: "password"});
	 			
	 			form_myaccount.column({width:230, labelWidth:75, clear:true}); // open column, without auto close
	 			form_myaccount.add(field_nick, field_fullname, field_birthdate);
	 			form_myaccount.end();
		    form_myaccount.column({width:200, style:'margin-left:0px', clear:true});
		    form_myaccount.container({id:'photo', style: 'margin-top: 0px ;'});
		    form_myaccount.add(field_city, field_gender, field_avatar);
		    form_myaccount.end();
		    
	 			
	 			//var field_shortdesc = new Ext.form.TextArea({fieldLabel: locStrings["about_me"], name: 'short_desc', width: 380});
	 			//form_myaccount.container({clear: true}, field_shortdesc);
	 			//form_myaccount.end ();
	 			
	 			form_myaccount.addButton({text: locStrings["savechanges_btn"], type : "submit"}, MyAccountDialog.trySave, form_myaccount);
	 			form_myaccount.addButton(locStrings["cancel_btn"], dialog.hide, dialog);
	 			form_myaccount.addButton(locStrings["myaccount_enter_btn"], function() {location.href=ChatApp.MainUrl + "my/index.html"}, dialog);
	 			
	 			form_myaccount.render ("form-myaccount");
	 			
	 			var photo = Ext.get('photo');
		    var c = photo.createChild({tag:'span'});
		    var imgTag = c.createChild({tag:'img',
		            src: '/data/userimage.php?type=t', 
		            style: 'margin-bottom: 5px; margin-top: -7px'});
		            
		    this.photoTag = imgTag;
		    //new Ext.Button(c, {text: locStrings["changephoto_btn"]});
	 		},
	 			
	 		updateImage: function () {
	 			this.photoTag.dom.src = "/data/userimage.php?type=t&rnd=" + (Math.random() * 100);
	 			ChatApp.myPicSuffix = "&rnd=" + (Math.random() * 100);
	 			ChatApp.needReloadUserlist = true;
	 			ChatApp.loadMessages ();
	 		},
	 			
	 		trySave: function () {
	 			if (form_myaccount.isValid()) {
		        form_myaccount.submit({
		        	params: {action: 'submit', channelId: ChatApp.getCurrentChat().id},
		        	success: function (form, action) {
		        		MyAccountDialog.updateImage ();
		        		if (!action.result) {
		        			dialog.hide ();
		        			return;
		        		}
		        		if(action.result.user.IsLogined) {
		        			Ext.MessageBox.alert("Result","You'r params saved");
		        			ChatApp.myUser = action.result.user;
		        			dialog.hide ();
		        		} else {
		        			Ext.MessageBox.alert(locStrings["error_title"], "Sorry, unknown error");
		        		}
		        	},
		        	failure: function (form, action) {
		        		ChatApp.showErrors(action.result.errors);
		        	}
		        });
		    }else{
		      Ext.MessageBox.alert(locStrings["error_title"], locStrings["error_need_fields"]);
		    }
	 		}
	 	}
}();