/*
 * Ext JS Library 2.2
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 * 
 */

Ext.onReady(function(){

    Ext.QuickTips.init();

    // turn on validation errors beside the field globally
    Ext.form.Field.prototype.msgTarget = 'side';

  var loadHnd = function() {	
    Ext.getCmp('action').setValue('LOAD');
    Ext.Ajax.request({                                                      
      url: '/rpgui/basicform',                                                    
      params: '{action: "LOAD"}', 
      success: function(response) { 
        var jRsp = eval("(" + response.responseText + ")"); // Convert response to a local JSON object
        Ext.getCmp('firstName').setValue(jRsp.firstName);              
        Ext.getCmp('lastName').setValue(jRsp.lastName);
        Ext.getCmp('company').setValue(jRsp.company);
        Ext.getCmp('email').setValue(jRsp.email);
        Ext.getCmp('state').setValue(jRsp.state);
        Ext.getCmp('dateOfBirth').setValue(jRsp.dateOfBirth);
        Ext.getCmp('msg').setValue(jRsp.msg);                                                        
      }
    });
  };

  var submitHnd = function() {	
    Ext.getCmp('action').setValue('SUBMIT');
    Ext.Ajax.request({                                                      
      url: '/rpgui/basicform',                                                    
      params: Ext.encode(fp1.getForm().getValues()), 
      success: function(response) { 
        var jRsp = eval("(" + response.responseText + ")"); // Convert response to a local JSON object
        Ext.getCmp('firstName').setValue('');
        Ext.getCmp('lastName').setValue('');
        Ext.getCmp('company').setValue('');
        Ext.getCmp('email').setValue('');
        Ext.getCmp('state').setValue('');
        Ext.getCmp('dateOfBirth').setValue('');
        Ext.getCmp('msg').setValue(jRsp.msg);
      }
    });
  };

  var stateList = [
        ['AL', 'Alabama'],
        ['AK', 'Alaska'],
        ['AZ', 'Arizona'],
        ['AR', 'Arkansas'],
        ['CA', 'California'],
        ['CO', 'Colorado'],
        ['CT', 'Connecticut'],
        ['DE', 'Delaware'],
        ['DC', 'District of Columbia'],
        ['FL', 'Florida'],
        ['GA', 'Georgia'],
        ['HI', 'Hawaii'],
        ['ID', 'Idaho'],
        ['IL', 'Illinois'],
        ['IN', 'Indiana'],
        ['IA', 'Iowa'],
        ['KS', 'Kansas'],
        ['KY', 'Kentucky'],
        ['LA', 'Louisiana'],
        ['ME', 'Maine'],
        ['MD', 'Maryland'],
        ['MA', 'Massachusetts'],
        ['MI', 'Michigan'],
        ['MN', 'Minnesota'],
        ['MS', 'Mississippi'],
        ['MO', 'Missouri'],
        ['MT', 'Montana'],
        ['NE', 'Nebraska'],
        ['NV', 'Nevada'],
        ['NH', 'New Hampshire'],
        ['NJ', 'New Jersey'],
        ['NM', 'New Mexico'],
        ['NY', 'New York'],
        ['NC', 'North Carolina'],
        ['ND', 'North Dakota'],
        ['OH', 'Ohio'],
        ['OK', 'Oklahoma'],
        ['OR', 'Oregon'],
        ['PA', 'Pennsylvania'],
        ['RI', 'Rhode Island'],
        ['SC', 'South Carolina'],
        ['SD', 'South Dakota'],
        ['TN', 'Tennessee'],
        ['TX', 'Texas'],
        ['UT', 'Utah'],
        ['VT', 'Vermont'],
        ['VA', 'Virginia'],
        ['WA', 'Washington'],
        ['WV', 'West Virginia'],
        ['WI', 'Wisconsin'],
        ['WY', 'Wyoming']
    ];

    var fp1 = new Ext.FormPanel({
        frame: true,
        title:'RPGUI Basic Form',
        labelAlign: 'right',
        width:340,
        waitMsgTarget: true,
        defaultType: 'textfield',
        items: [
            {fieldLabel: 'First Name', id: 'firstName'},  
            {fieldLabel: 'Last Name', id: 'lastName'}, 
            {fieldLabel: 'Company', id: 'company'}, 
            {fieldLabel: 'Email', id: 'email', vtype:'email'},
            {id: 'action', hidden:true},

            new Ext.form.ComboBox({
                fieldLabel: 'State',
                id:'state',
                valueField:'abbr',
                displayField:'state',
				mode: 'local',
                store: new Ext.data.ArrayStore({
					autoLoad:true,
                    fields: ['abbr', 'state'],
                    data: stateList
                })
            }),
            new Ext.form.DateField({
                fieldLabel: 'Date of Birth',id: 'dateOfBirth'
            }),
            new Ext.form.DisplayField({
                fieldLabel: 'Message',id: 'msg',name: 'msg'
            })
        ],
        buttons: [
          {text: 'Load',id: 'btnLoad',handler: loadHnd},
          {text: 'Submit',id: 'btnSubmit',handler: submitHnd}
        ]
    });

    fp1.render('myBasicForm');

});

