Ext.onReady(function(){

    Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); // indlucde www when needed 	
    Ext.QuickTips.init();
    Ext.QuickTips.getQuickTip().interceptTitles = true;
    Ext.QuickTips.enable();
    
    
    AddEditableDropDowns = new Ext.FormWindow({
        "fieldList": [{
            fieldLabel: 'Username',
            name: 'loginUsername',
            vtype: 'email',
            "xtype": "textfield",
            "inputType": "text",
            allowBlank: false,
            value: Ext.state.Manager.get('UserName'),
			listeners: {
                'specialkey': function(textfield, e){
                    if (e.getKey() == 13) {
                       loginFormSubmit()
                    }
                }
            }
        }, {
            fieldLabel: 'Password',
            name: 'loginPassword',
            inputType: 'password',
            "xtype": "textfield",
            "inputType": "password",
            allowBlank: false,
            listeners: {
                'specialkey': function(textfield, e){
                    if (e.getKey() == 13) {
                       loginFormSubmit()
                    }
                }
            }
        }, {
            fieldLabel: 'Remember Me',
            name: 'rememberMe',
            xtype: 'checkbox',
            allowBlank: true,
            anchor: "33%",
            checked: Ext.state.Manager.get('UserName') ? true : false
        }, new Ext.Panel({
            baseCls: 'x-plain',
            el : 'bookmark2'
        
        })],
        "formUrl": "/index.php/page,Login",
        "width": 400,
        "height": 340,
        closable: false,
        monitorValid: true,
        maximizable: false,
		modal: false,
        "title": "<div align='center'><div id='logo'></div></div>"
    
    });
    //console.log(AddEditableDropDowns.items);
    /*
     *
     
     AddEditableDropDowns.items.add(new Ext.Panel({
     baseCls: 'x-plain',
     id: 'logo',
     html : 'SHOEB'
     
     }));
     */
	loginFormSubmit = function(){
	
		AddEditableDropDowns.formPanel.getForm().submit({
			method: 'POST',
			waitTitle: 'Connecting',
			waitMsg: 'Sending data...',
			success: function(form, action){
				obj = Ext.util.JSON.decode(action.response.responseText);
				if (form.items.items[2].checked) {
					var stateManager = Ext.state.Manager;
					stateManager.set('UserName', form.items.items[0].getValue());
				}
				else {
					var stateManager = Ext.state.Manager;
					stateManager.clear('UserName');
				}
				Ext.MessageBox.show({
					msg: 'Authentication Successfull',
					progressText: 'redirecting...',
					width: 300,
					wait: true,
					waitConfig: {
						interval: 200
					}
				});
				
				window.location = obj.location;
				
			},
			
			failure: function(form, action){
				Ext.MessageBox.alert('Eh...', action.failureType == 'client' ? 'Please fill all the required fields!' : (action.result.errorMessage || 'I dont know what but something went wrong.. '));
				if (action.response) {
					obj = Ext.util.JSON.decode(action.response.responseText);
					if (obj.success == false) {
						Ext.Msg.alert('Login Failed!', obj.message);
						var stateManager = Ext.state.Manager;
						stateManager.clear('UserName');
					}
					
				AddEditableDropDowns.formPanel.getForm().items.items[0].setValue('');
				AddEditableDropDowns.formPanel.getForm().items.items[1].setValue('');
				AddEditableDropDowns.formPanel.getForm().items.items[2].checked = false;
				AddEditableDropDowns.formPanel.getForm().clearInvalid();
				}
			}
		});
	}
    AddEditableDropDowns.btnCancel.hide();
    AddEditableDropDowns.btnReset.hide()
    AddEditableDropDowns.btnSave.hide()
    AddEditableDropDowns.btnSaveAndNew.hide()
    AddEditableDropDowns.formPanel.addButton({
        text: 'Login',
        formBind: true,
        // Function that fires when user clicks the button 
        handler: function(){
            loginFormSubmit();
        }
    });
    //console.log();
    var cookieEnabled = (navigator.cookieEnabled) ? true : false
    
    //if not IE4+ nor NS6+
    if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
        document.cookie = "testcookie"
        cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false
    }
	//console.log(AddEditableDropDowns.formPanel)
//    AddEditableDropDowns.formPanel.mask = false;
    if (cookieEnabled) //if cookies are enabled on client's browser
        AddEditableDropDowns.showBlank("asd");
    else 
        Ext.Msg.alert('Cookies Disabled!', "Your browser's cookie functionality is turned off. Please turn it on <a href='http://www.google.com/support/accounts/bin/answer.py?ctx=ch&answer=61416'>?</>");
    //AddEditableDropDowns.showBlank("asd");
    
    // RECOVER PASSWORD
    RecoverPassword = new Ext.FormWindow({
        "fieldList": [{
            fieldLabel: 'Username',
            name: 'loginUsername',
            vtype: 'email',
            "xtype": "textfield",
            "inputType": "text",
            allowBlank: false,
            value: Ext.state.Manager.get('UserName')
        }],
        "formUrl": "/index.php/page,ForgotPassword",
        "width": 400,
        monitorValid: true,
        "height": 200,
        closable: true,
        closeAction: 'hide',
        maximizable: false,
        "title": "Recover Password"
    });
    RecoverPassword.btnCancel.hide();
    RecoverPassword.btnReset.hide()
    RecoverPassword.btnSave.hide()
    RecoverPassword.btnSaveAndNew.hide()
    RecoverPassword.formPanel.addButton({
        text: 'Recover',
        formBind: true,
        // Function that fires when user clicks the button 
        handler: function(){
            RecoverPassword.formPanel.getForm().submit({
                method: 'POST',
                waitTitle: 'Connecting',
                waitMsg: 'Sending data...',
                success: function(form, action){
                    obj = Ext.util.JSON.decode(action.response.responseText);
                    Ext.MessageBox.alert('Password Recovered', obj.message);
                    form.reset();
                    RecoverPassword.closeWindow();
                    
                },
                failure: function(form, action){
                    obj = Ext.util.JSON.decode(action.response.responseText);
                    if (obj.success == false) {
                        Ext.Msg.alert('Grrr', obj.message);
                        
                    }
                }
            });
        }
    })
    
    
    
    //RecoverPassword.showBlank("asd");		
});

