var changePasswordUrl = '/elms/changePassword.go';
Ext.onReady(function(){
    Ext.QuickTips.init();
    Ext.form.Field.prototype.msgTarget = 'under';
    if(requireChangePassword){
        var form = createForm(true);

        var window = new Ext.Window({
            title : textStore['changePassword'],
            modal : true,
            closable : false,
            items : [form]
        });
        window.show();
    }
})

function changePassword(){
    var co = Ext.get('mainGrid');
    if(co != null){
        co.remove();
    }

    var cp = createForm(false);
    cp.render('gridCourses');

}

function createForm(isEnforce){

    var form = new Ext.form.FormPanel({

        defaultType:'textfield',
        Frame: true,
        title:textStore['changeUserPassword'],
        labelAlign: 'right',
        labelWidth: 130,
        width:400,
        height:240,
        id : 'mainGrid',
        monitorValid:true,
        modal: true,
        bodyStyle: 'padding: 10px 10px 0 20px;',
        padding:200,
        url:changePasswordUrl,
        items:[{
            fieldLabel:textStore['oldPassword'],
            name:'oldPassword',
            inputType: 'password',
            width:190,
            allowBlank:false
        },{
            fieldLabel:textStore['newPassword'],
            name:'newPassword',
            inputType: 'password',
            vtype:'passwordStrength',
            width:190,
            id: 'pass',
            allowBlank:false
        },{
            fieldLabel:textStore['confirmNewPassword'],
            name:'password1',
            inputType: 'password',
            width:190,
            vtype:'password',
            initialPassField: 'pass',
            allowBlank:false
        }],

        buttons:[{
            text:textStore['save'],
            handler:function(){
                form.getForm().submit({
                    success:function(){
                        Ext.Msg.alert(textStore['success'], textStore['changePasswordSucceeded']);
                        if(isEnforce){
                            form.ownerCt.close();
                        }else{
                            form.getForm().reset();
                        }
                    },

                    failure:function(f, action){
                        var result = Ext.util.JSON.decode(action.response.responseText);
                        Ext.Msg.alert(textStore['failed'], result.msg);
                        form.getForm().reset();
                    }
                });
            }
        },
        {
            text: textStore['reset'],
            handler: function(){
                form.getForm().reset();
            }
        }]
    });

    return form;
}

function getMyStaffPassword(range){
    var co = Ext.get('gridCourses').first();
    if(co != null){
        co.remove();
    }
    var xg = Ext.grid;
    var reader = new Ext.data.XmlReader({
        record: 'myStaff',
        id: 'userID',
        totalRecords: 'totalRows'
    }, ['firstName', 'lastName', 'login', 'password']);

    var store = new Ext.data.Store({
        url: getMyStaffPasswordURL + range,
        reader: reader,
        remoteSort: true
    });

    var pagingBar = new Ext.PagingToolbar({
        pageSize: myStaffListPageSize,
        store: store,
        displayInfo: true,
        emptyMsg: "No rows to display",

        items:[
        '-', {
            pressed: true,
            enableToggle:true,
            cls: 'x-btn-text-icon details',
            toggleHandler: function(btn, pressed){
                var view = grid.getView();
                view.refresh();
            }
        }]
    });

    var grid = new xg.GridPanel({
        store: store,
        columns: [
        {
            header: "First Name",
            width: 200,
            dataIndex: 'firstName',
            sortable: true
        },
        {
            header: "Last Name",
            width: 200,
            dataIndex: 'lastName',
            sortable: true
        },
        {
            header: "Login",
            width: 200,
            dataIndex: 'login',
            sortable: true
        },
        {
            header: "Password",
            width: 100,
            dataIndex: 'password',
            sortable: true
        }
        ],
        renderTo:'gridCourses',
        id : 'mainGrid',
        width:700,
        height:415,
        bbar: pagingBar

    });

    store.load({
        params:{
            start:start,
            limit:myStaffListPageSize
        }
    });

}


