function form1() {
    Ext.BLANK_IMAGE_URL = "/learn/ext/resources/images/default/s.gif";
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = "side";
    var form = new Ext.form.FormPanel({
        title : "用户登陆",
        labelWidth : 60,
        labelSeparator : ": ",
        bodyStyle : "padding:15 5 5 5",
        height : 120,
        width : 250,
        frame : true,
        labelWidth : 60,
        labelAlign : "right",
        applyTo : "form",
        items : [new Ext.form.TextField({
                    fieldLabel : "用户名",
                    id : "userName",
                    minLength : 6,
                    minLengthText : "长度不能小于6个字符",
                    maxLength : 20,
                    maxLengthText : "长度超过了20个字符",
                    selectOnFocus : true,
                    allowBlank : false,
                    blankText : "请填写用户名",
                    regex : /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/,
                    regexText : "用户名格式错误"
                }), new Ext.form.TextField({
                    inputType : "password",
                    fieldLabel : "密码",
                    allowBlank : false,
                    blankText : "请填写密码",
                    minLength : 6,
                    minLengthText : "长度不能小于6个字符",
                    maxLength : 20,
                    maxLengthText : "长度超过了20个字符"
                })]
    })
}
function form2() {
    Ext.BLANK_IMAGE_URL = "/learn/ext/resources/images/default/s.gif";
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = "side";
    var form = new Ext.form.FormPanel({
                title : "多行文本",
                labelWidth : 60,
                labelSeparator : ": ",
                bodyStyle : "padding:15 5 5 5",
                height : 250,
                width : 250,
                frame : true,
                labelWidth : 60,
                labelAlign : "right",
                applyTo : "form",
                items : [new Ext.form.TextArea({
                                    fieldLabel : "备注",
                                    id : "memo",
                                    width : 150
                                }), new Ext.form.Radio({
                                    name : "sex",
                                    fieldLabel : "性别",
                                    boxLabel : "男"
                                }), new Ext.form.Radio({
                                    name : "sex",
                                    fieldLabel : "性别",
                                    boxLabel : "女"
                                }), new Ext.form.Checkbox({
                                    name : "walk",
                                    fieldLabel : "爱好",
                                    boxLabel : "散步"
                                })],
                buttons : [{
                            text : "确定",
                            handler : showValue
                        }]
            })
    function showValue() {
        var memo = form.findById("memo");
        alert(memo.getValue());
    }
}
function triggerField() {
    var form = new Ext.form.FormPanel({
                title : "练习Trigger",
                labelSeparator : ": ",
                labelWidth : 80,
                bodyStyle : "padding:5 5 5 5",
                frame : true,
                height : 100,
                width : 270,
                applyTo : "form",
                items : [new Ext.form.TriggerField({
                            id : "memo",
                            fieldLabel : "触发字段",
                            hideTrigger : false,
                            onTriggerClick : function(e) {
                                var memo = form.findById("memo");
                                alert(memo.getValue());
                            }
                        })]
            })
}
function form4() {
    var store = new Ext.data.SimpleStore({
                fields : ["province", "post"],
                data : [["南充", "0"], ["成都", "1"], ["广元", "2"], ["乐山", "3"]]
            });
    var form = new Ext.form.FormPanel({
                title : "练习Trigger",
                labelSeparator : ": ",
                labelWidth : 80,
                bodyStyle : "padding:5 5 5 5",
                frame : true,
                height : 100,
                width : 270,
                applyTo : "form",
                items : [new Ext.form.ComboBox({
                            id : "post",
                            fieldLabel : "四川的城市",
                            triggerAction : "all",
                            store : store,
                            displayField : "province",
                            valueField : "post",
                            mode : "local",
                            forceSelection : true,
                            resization : true,
                            typeAhead : true,
                            value : "3",
                            handleHeight : 100
                        })]
            })
}
function form5() {
    var store = new Ext.data.SimpleStore({
                proxy : new Ext.data.HttpProxy({
                            url : "/learn/index.jsp"
                        }),
                fields : ["bookName"]
            });
    var form = new Ext.form.FormPanel({
                title : "远程数据",
                labelSeparator : ": ",
                labelWidth : 80,
                bodyStyle : "padding:5 5 5 5",
                frame : true,
                height : 100,
                width : 270,
                applyTo : "form",
                items : [new Ext.form.ComboBox({
                            id : "book",
                            allQuery : "allbook",
                            loadingText : "正在加载数据",
                            minChars : 3,
                            queyDelay : 300,
                            queryParam : "searchbook",
                            fieldLabel : "书籍列表",
                            triggerAction : "all",
                            store : store,
                            displayField : "bookName",
                            mode : "remote"
                        })]
            })
}
function form6() {
    Ext.apply(Ext.form.VTypes, {
                dateRange : function(val, field) {
                    if (field.dateRange) {
                        var beginId = field.dateRange.begin;
                        /** 根据组件id得到组件 */
                        this.beginField = Ext.getCmp(beginId);
                        var endId = field.dateRange.end;
                        this.endField = Ext.getCmp(endId);
                        var beginDate = this.beginField.getValue();
                        var endDate = this.endField.getValue();
                    }
                    if (beginDate <= endDate) {
                        return true;
                    } else {
                        return false;
                    }
                },
                dateRangeText : "开始日期不能大于结束日期"
            });
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = "side";
    var dateForm = new Ext.form.FormPanel({
                title : "自定义form",
                labelSeparator : ":",
                labelWidth : 80,
                bodyStyle : "padding:5 5 5 5",
                frame : true,
                height : 130,
                width : 300,
                applyTo : "form",
                items : [new Ext.form.DateField({
                                    id : "beginDate",
                                    format : "Y年m月d日",
                                    width : 150,
                                    allowBlank : false,
                                    readOnly : true,
                                    value : new Date(),
                                    fieldLabel : "开始日期",
                                    dateRange : {
                                        begin : "beginDate",
                                        end : "endDate"
                                    },
                                    vtype : "dateRange"
                                }), new Ext.form.DateField({
                                    id : "endDate",
                                    format : "Y年m月d日",
                                    width : 150,
                                    allowBlank : false,
                                    readOnly : true,
                                    value : new Date(),
                                    fieldLabel : "开始日期",
                                    dateRange : {
                                        begin : "beginDate",
                                        end : "endDate"
                                    },
                                    vtype : "dateRange"
                                })],
                buttons : [new Ext.Button({
                            text : "提交",
                            handler : function() {
                                if (dateForm.form.isValid()) {
                                    Ext.Msg.alert("提示", "验证通过提交表单");
                                }
                            }
                        })]
            })
}
function form7() {
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = "side";
    var productForm = new Ext.form.FormPanel({
                title : "表单加载示例",
                labelWidth : 100,
                width : 300,
                frame : true,
                labelSeparator : ": ",
                applyTo : "form",
                items : [new Ext.form.TextField({
                                    fieldLabel : "产品名称",
                                    name : "productName",
                                    width : 150,
                                    value : "HP5720本本"
                                }), new Ext.form.NumberField({
                                    fieldLabel : "金额",
                                    name : "price",
                                    width : 150,
                                    value : 100
                                }), new Ext.form.DateField({
                                    fieldLabel : "生产日期",
                                    formate : "Y年m月d日",
                                    width : 150,
                                    name : "date",
                                    value : new Date()
                                }), new Ext.form.TextArea({
                                    id : "introduction",
                                    name : "introduction",
                                    fieldLabel : "产品简介",
                                    width : 150
                                })],
                buttons : [new Ext.Button({
                            text : "加载简介",
                            handler : loadCallBack
                        })]
            });
    function loadCallBack() {
        productForm.form.load({
                    waitMsg : "正在加载产品简介信息",
                    waitTitle : "提示",
                    url : "/learn/productServe.jsp",
                    method : "POST",
                    success : function(form, action) {
                        Ext.Msg.alert("提示", "产品加载成功");
                    },
                    failure : function(form,action) {
                        Ext.Msg.alert("提示", "产品简介加载失败<br/>失败原因:" + action.failureType);
                    }
                });
    }
}
function form8()
{
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget="side";
    var loginForm = new Ext.form.FormPanel({
        title:"登陆",
        labelWidth:60,
        width:230,
        frame:true,
        labelSeparator:":",
        applyTo:"form",
        items:[
            new Ext.form.TextField({
                fieldLabel:"用户名",
                name:"userName",
                allowBlank:false,
                vtype:"email"
            }),
            new Ext.form.NumberField({
                fieldLabel:"密码",
                name:"password",
                allowBlank:false
            })
        ],
        buttons:[
            new Ext.Button({
                text:"登陆",
                handler:login
            }),
            new Ext.Button({
                text:"重置",
                handler:reset
            })
        ]
    });
    function login()
    {
        loginForm.form.submit({
        clientValidation:true,waitMsg:"正在登录系统请稍后",
        waitTitle:"提示",
        url:"/learn/loginServe.jsp",
        method:"GET",
        success:function(form,action)
        {
            Ext.Msg.alert("提示","系统登录成功");
        },
        failure:function(form,action)
        {
            Ext.Msg.alert("提示","系统登陆失败" + action.failureType);
        }});
    }
    function reset(){
        loginForm.form.reset();
    }
}
Ext.onReady(form8);