Ext.onReady(function(){

Ext.QuickTips.init();
 
  var formPanel = new Ext.FormPanel({ 
//			height: 220,
			width: 325,
			margins:'10 5 5 0',
			id: 'login-form',
			labelWidth:90,
			bodyStyle: 'padding-left:15px;padding-left:15px; padding-bottom:0px; padding-right:15px;padding-top:0px;background:transparent',
			frame:true,
			border: false,
			title:'Bitte melden Sie sich an:',
			//renderTo: 'testlogin',
			defaultType:'textfield',
			monitorValid:true,
			defaults:
			{
				enableKeyEvents: true,
				listeners:
				{
					specialKey: function (field, el)
					{
						if (el.getKey () == Ext.EventObject.ENTER && formPanel.getForm().isValid())
						{
							Ext.getCmp ('login-button').fireEvent ('click');
						}
					}
				}
			},
		// Specific attributes for the text fields for username / password. 
		// The "name" attribute defines the name of variables sent to the server.
			items:
			[
			 	{
					xtype: 'box',
					autoEl: {
						tag: 'div',
						html: '<div class="app-msg"><img src="img/LoginManager_72x72.png" class="app-img" alt="Icon Login" /><br/><b>Anmeldung</b><br/>' +
						(IS_PZV ? 'Privatzimmervermietung NÖ' : 'Urlaub am Bauernhof') + ' Selbstwartungstool' +
						'</div><div style="clear:both"></div>'
					}
			 	},
			 	{
					xtype: 'textfield',
					fieldLabel:'Benutzername', 
					name:'sendloginform[loginEmail]',
					id: 'loginUsername',
					emptyText: 'Benutzername',
					blankText:'Tragen Sie bitte Ihren Benutzernamen ein!',
					allowBlank:false
				},
				{
					xtype: 'textfield',
					fieldLabel:'Passwort', 
					name:'sendloginform[loginPassword]', 
					id: 'loginPassword',
					inputType:'password',
					emptyText: 'Passwort',
					blankText:'Tragen Sie bitte Ihr Passwort ein!',
					allowBlank:false
				},
				{
					xtype: 'displayfield',
					hideLabel: true,
					value: 'Passwort vergessen? <a href="#" onclick="Ext.getCmp(\'forgotpw\').show(); return false;">Hier klicken!</a>'
				}
			],
	 
		// All the magic happens after the user clicks the button     
			buttons:
			[
				{
					text:'Anmelden',
					tooltip: 'Anmeldedaten absenden',
					tooltipType: 'title',
					formBind: true,	
					id: 'login-button',
					// Function that fires when user clicks the button 
					listeners:
					{
						click: function (btn, evt)
						{
							formPanel.getForm().submit ({ 
								method:'POST', 
								waitTitle:'Verbindung', 
								waitMsg:'Daten werden gesendet ...',
								url: MY_AJAX_DEFAULTHANDLER,
								params:
								{
									section: 'login',
									method: 'sendloginform'
								},
								success:function()
								{
									if (typeof (MY_REDIRECT_URL) == 'undefined' || MY_REDIRECT_URL == '')
									{
										var redirect = 'section=start';	
									}
									else
									{
										var redirect = MY_REDIRECT_URL;
									}
									 
									window.location = 'index.php?' + redirect;
									
								},
								failure:function(form, action)
								{ 
									if(action.failureType == 'server')
									{
										obj = Ext.util.JSON.decode(action.response.responseText); 
										Ext.Msg.alert('Fehler', obj.errors.reason, function () 
										{
											Ext.getCmp ('loginPassword').reset();
											Ext.getCmp ('loginPassword').focus();
										});
									}
									else
									{ 
										Ext.Msg.alert('Warnung!', 'Der Authentifizierungsserver ist nicht erreichbar : ' + action.response.responseText); 
									} 
								}
							}); 
						}
					}
				}
			]
		});



	// Create a variable to hold our EXT Form Panel. 
	// Assign various config options as seen.	 
   var login = new Ext.Panel({ 
   		title: 'Login',
	    layout: 'anchor',
	    region: 'center',
		frame: false,
	    header: false,
	    headerAsText: false,
	    padding: '25 5 5 25',
	    shadow: 'drop',
	    margins: '5 5 5 5',
		items:  [formPanel] 
	});
   
var forgotpw = new Ext.Window ({
	title: 'Passwort vergessen',
	id: 'forgotpw',
	layout: 'fit',
	modal: true,
	width: 350,
	height: 175,
	closeAction: 'hide',
	defaultButton: 'forget-email',
	items:
	[
	 	{
	 		xtype: 'form',
	 		padding: 5,
	 		id: 'forget-form',
	 		monitorValid: true,
	 		items:
	 		[
	 		 	{
	 		 		xtype: 'displayfield',
	 		 		value: 'Bitte geben Sie Ihre Email-Adresse ein. Es wird ein neues Passwort für Sie generiert und an die Email-Adresse geschickt.',
	 		 		hideLabel: true
	 		 	},
	 		 	{
	 		 		xtype: 'displayfield'
	 		 		// Spacer
	 		 	},
	 		 	{
	 		 		xtype: 'textfield',
	 		 		fieldLabel: 'Email-Adresse',
	 		 		name: 'forget-email',
	 		 		id: 'forget-email',
	 		 		emptyText: 'Email-Adresse',
	 		 		vtype: 'email',
	 		 		allowBlank: false,
	 		 		anchor: '100%'
	 		 	}
	 		],
	 		buttons:
	 		[
	 		 	{
	 		 		text: 'Abbrechen',
	 		 		handler: function ()
	 		 		{
	 		 			forgotpw.hide();
	 		 		}
	 		 	},
	 		 	{
	 		 		text: 'Absenden',
	 		 		formBind: true,
	 		 		handler: function ()
	 		 		{
						Ext.getCmp ('forget-form').getForm().submit ({ 
							waitTitle:'Verbindung', 
							waitMsg:'Daten werden gesendet ...',
							url: MY_AJAX_DEFAULTHANDLER,
							params:
							{
								section: 'login',
								method: 'forgetpw'
							},
							success:function()
							{ 
								Ext.Msg.alert ("Erfolg!", "Es wurde eine Email an die angegebene Email-Adresse gesendet. Bitte befolgen Sie die Anweisungen in dieser Mail, um Ihr Passwort zurückzusetzen.");
								forgotpw.hide();
							},
							failure:function(form, action)
							{ 
								if(action.failureType == 'server')
								{
									obj = Ext.util.JSON.decode(action.response.responseText); 
									Ext.Msg.alert('Fehler', obj.errors.reason, function () 
									{
										Ext.getCmp ('forget-email').reset();
										Ext.getCmp ('forget-email').focus();
									});
								}
								else
								{ 
									Ext.Msg.alert('Warnung!', 'Der Authentifizierungsserver ist nicht erreichbar.'); 
								} 
							}
						}); 
	 		 		}
	 		 	}
	 		]
	 	}
	]
});

  //login.renderTo('testlogin'); 
 
 /*
	// This just creates a window to wrap the login form. 
	// The login object is passed to the items collection.       
    var win = new Ext.Window({
        layout:'fit',
        width:320,
        layout: 'form',
		autoHeight: true,
		//height:250,
        closable: false,
        resizable: false,
        plain: true,
        border: false,
        items: [login]
	});
	win.show();*/

//Ausschalten der Hauptnavigation
// Ext.navigation.hauptnavi.hidden = true;
//Ausschalten den Abmelden-Buttons
Ext.getCmp('hilfsnavitb').findById('abmeldenBtn').hidden=true;
Ext.getCmp('hilfsnavitb').findById('abmeldenSeperator').hidden=true;


//Ext.getCmp('hilfsnavitb').findById('abmeldenBtn').text='Anmelden';

   //MUSTER ZUM ZUGREIFEN AUF OBJECTVARIABLEN
   //Ext.getCmp('tb').findById('nachrichtBtn').text='Nachrichten (4)';
 //  hauptnavi.hidden = true;
//   Ext.getCmp('hauptnavi').findById('tb').hidden=true;
   //gugu.iconAlign = 'right';
   
 	/* ===============================================================================================
	VIEWPORT 
	================================================================================================*/
   var viewport = new Ext.Viewport({
        layout:'border',
		id: 'mainscreen',
		items:[Ext.navigation.kopfbereich,login
        ]
	});
    
   if (typeof showmessage == "string") Ext.Msg.alert ("Nachricht", showmessage);
   
});
