var gsForm = {

	/* OBJ VARS */
	userData: null,
	systemAction: null,
	urlToRedirect: null,

	/* API FUNCTIONS */
	login: function(username, password){
		gsApi.login(
			{uname: username, pass: password},
			function(data, error) {
				//console.log('login');
				//console.log(data);
				//console.log(error);

				if(data.errCode == 0) {
					gsForm.interfaceAction = data.response.systemAction;
					gsForm.userData = data.response.userData;

					//gsForm.switchDialog();
					gsForm.loginHandler.success(data.response);
				} else {
					//console.log('error');
					//console.log(data);
					gsForm.loginHandler.error(data.response.code);
				}
		});
	},
	loginHandler: {
		success: function(response){
			//eTracker Code
			ET_Event.click('SEO: Login Geschenkeservice erfolgreich', 'SEO: Login Geschenkeservice erfolgreich');
			
			if(response != undefined && response.urlToRedirect != '') {
				gsForm.urlToRedirect = response.urlToRedirect;
			}

			if(gsForm.interfaceAction != null) {
				switch(gsForm.interfaceAction) {
					// CUSTOMER
					case 'changeLoginData':
						dialog.display('changeLoginData');
					break;

					case 'firstLogin':
						dialog.display('firstLogin');
					break;

					// GUESTS
					case 'occasionNote':
						gsForm.enter();
						//TODO: check occasionNote-status #BTS 7924
						//dialog.fancybox.onClosed = function(){ gsForm.enter(); };
						//dialog.display('occasionNote');
					break;

					// ALL
					case 'redirect':
						gsForm.enter();
					break;

					default:
						dialog.display('error');
					break;
				}
			} else {
				//TODO: ERROR LAYER
				dialog.display('error');
			}
		},
		error: function(errCode){
			switch(errCode) {
				case 11:
					dialog.display('unknownUser');
				break;

				case 12:
					dialog.display('wrongPassword');
				break;

				case 13:
					dialog.display('listInactive');
				break;

				default:
					dialog.display('error');
				break;
			}
		}
	},
	logout: function() {
		gsApi.logout(
			function(data, error) {
				console.log('logout');
				console.log(data);
				//console.log(error);
		});
	},
	getLanguage: function() {
		gsApi.getLanguage(
			function(data, error) {
				console.log('getLanguage');
				//console.log(data);
				//console.log(error);

				console.log(data.response.language);
				//alert(data.response.language);
		});
	},
	setLanguage: function(lang, callback) {
		gsApi.setLanguage(
			lang,
			function(data, error) {
				if(callback != undefined) {
					callback(data);
				}
		});
	},
	enter: function(){
		if(gsForm.urlToRedirect != null) {
			window.location = gsForm.urlToRedirect;
			/*
			//DEVELOP::
			console.log('DEVELOP::redirect');
			dialog.display('changeLoginData');
			//DEVELOP::END
			*/
		} else {
			dialog.display('error');
		}
	}
};
