﻿Ext.onReady(function() {

	Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
	
	// 使用表单提示
	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = 'side';
	
	var languagedata = [
        ['en',	'English'],
        ['cn',	'中文'],
        ['xn',	'Español'],
        ['dn',	'Deutsch'],
        ['an',	'العربية'],
        ['fn',	'Français'],
        ['ern',	'русский'],
        ['pn',	'Português'],
        ['yn',	'Italiano'],
        ['fen',	'Netherlands'],
        ['yin',	'Bahasa indonesia'],
        ['xin',	'Ελληνικά'],
        ['vi',	'Vietnamese']
    ];
    
    var languagestore= new Ext.data.ArrayStore({ 
        fields: ['value', 'text'],
        data : languagedata
	});

	// 定义表单
	var login = new Ext.FormPanel({
		labelWidth : 75,
		monitorValid : true,// 把有formBind:true的按钮和验证绑定
		baseCls : 'x-plain',
		defaults : {width : 150},
		labelAlign : 'right',
		defaultType : 'textfield',// 默认字段类型
		
		// 定义表单元素
		items : [{
			fieldLabel :getStr(S_UserName),
			name : 'uname',// 元素名称
			cls:'user',
			// anchor:'95%',//也可用此定义自适应宽度 
			allowBlank : false,// 不允许为空
			blankText : getStr(S_UserNameBlank)// 错误提示内容
		},{
			inputType : 'password',
			fieldLabel :getStr(S_Password),
			// anchor:'95%',
			name : 'upass',
			cls:'key',
			allowBlank : false,
			blankText : getStr(S_PasswordBlank),
	        listeners: {
	            'specialkey': function(txt, ev) {
	                if (ev.getKey() == ev.ENTER) {
	                    Login();
	                }
	            }
	        }
		},{
			hiddenName:'language',
            xtype:'combo',
            fieldLabel:getStr(S_Language),
            displayField : 'text', 
        	valueField : 'value',
        	store : languagestore,
        	mode : 'local',
        	value: 'en',
        	triggerAction : 'all'
		},{
			xtype : 'fieldset',
			title : LoginInfo,
			autoHeight : true,
			width : 270,
			items : [{
				layout : 'column',
				border : false,
				defaults : {
					border : false
				},
				items : [{
					columnWidth : 1.0,
					layout : 'form',
					defaultType : 'label',
					items : [{
						html : LoginMemo
					
					}]
				}]
			}]
		}],

        buttons : [
        	{text : getStr(S_Login),
        	formBind : true,
        	type : 'submit',
        	// 定义表单提交事件
        	handler : function() {
        		Login();
        	}
        	}, 
        	{text : getStr(S_Close),
        	handler : function() {
        		login.form.reset();
        	}// 重置表单
        	}
        ]
	});
	
    // 定义窗体
	var win = new Ext.Window({
		id : 'loginWin',
		title : getStr(S_Title),
		layout : 'fit', // 布局方式fit，自适应布局
		width : 300,
		height : 270,
		//modal : true,
		plain : true,
		bodyStyle : 'padding:5px;',
		maximizable : false,// 禁止最大化h
		closeAction : 'close',
		closable : false,// 禁止关闭
		collapsible : true,// 可折叠
		buttonAlign : 'center',
		items : login
		// 将表单作为窗体元素嵌套布局
	});
	win.show();// 显示窗体��ʾ����
	
	function Login(){
		if (login.form.isValid()) {// 验证合法后使用加载进度条
        			Ext.MessageBox.show({
        				title : getStr(S_PleaseWait),
        				msg : getStr(S_Logining),
        				progressText : '',
        				width : 300,
        				progress : true,
        				closable : false,
        				animEl : 'loading'
        			});

                    // 控制进度速度
        			var f = function(v) {
        				return function() {
        					var i = v / 11;
        					Ext.MessageBox.updateProgress(i, '');
        				};
        			};
        			for (var i = 1; i < 12; i++) {
        				setTimeout(f(i), i * 150);
        			}

        			// 提交到服务器操作
        			login.form.doAction('submit', {
        				url : 'Login',// 文件路径
        				method : 'post',// 提交方法post或get
        				//params : {language:lang},
        				
        				// 提交成功的回调函数
        				success : function(form, action) {
        					if (action.result.msg == 'ok') {
        						window.location = 'view';
        					} else {
        						Ext.Msg.alert(getStr(S_LoginFail),getStr(eval(action.result.msg)));
        					}
        				},

                        // 提交失败的回调函数
        				failure : function() {
        					Ext.Msg.alert(getStr(S_Error),getStr(S_LoginError));
        				}
        			});
        		}
	}
});
