/**
 * @author Dominik Scholz
 */

var auth = {
	// vars
	
	// handle enter-key to submit form
	keyUp: function(e){
		
		var keynum;
		
		if(window.event) // IE
			keynum = e.keyCode;
		else if(e.which) // Netscape/Firefox/Opera
			keynum = e.which;
		
		if (keynum == 13)
		{
			this.login();
			return false;
		}

		return true;
		
	},
	
	
	// handle login
	login: function() {
		
		var username = $F('log_username');
		var password = $F('log_password');
		
		if (username == '') {
			$('log_username').focus();
			return;
		}
		if (password == '') {
			$('log_password').focus();
			return;
		}
		
		$('log_password').value = '';

		var methodParams = [username, password];
		var params = cx.utils.Helpers.createSrvCallParams('Gb_Module_Auth', 'logIn', [], methodParams);		
		new Ajax.Request('/GTServer.php',
		{
			method:'post',
			parameters: params,
			onSuccess: function(res) {
			    	var msg = eval(res.responseText);
					if (msg == "valid") {
						contentproxy.close();					
						window.location.reload();
					} else {				
						$('log_spinner').style.display = 'none';
						$('log_invalid').style.display = 'block';
					}
			    }.bind(this)
		});
		$('log_spinner').style.display = 'block';
		
	},
	

	// handle password lost
	password: function() {
		
		var email = $F('pwl_email');
		
		if (email == '') {
			$('pwl_email').focus();
			return;
		}

		var methodParams = [email, window.currentLanguage];
		var params = cx.utils.Helpers.createSrvCallParams('Gb_Module_Registration', 'lostPassword', [], methodParams);		
		new Ajax.Request('/GTServer.php',
		{
			method:'post',
			parameters: params,
			onSuccess: function(res) {
					$('pwl_spinner').style.display = 'none';
			    	var msg = eval(res.responseText);
					if (msg == "valid") {
						$('pwl_form').style.display = 'none';
						$('pwl_valid').style.display = 'block';
					} else {				
						$('pwl_invalid').style.display = 'block';
					}
			    }.bind(this)
		});
		$('pwl_spinner').style.display = 'block';
		
	},
	
	
	// show register new user form
	register: function() {
		
		if (this.validateRegister() > 0) return;

		var methodParams = {};
		
		methodParams.gender = $F('reg_gender');
		methodParams.company = $F('reg_company');
		methodParams.name = $F('reg_name');
		methodParams.lastname = $F('reg_lastname');
		methodParams.email = $F('reg_email');
		methodParams.street = $F('reg_street');
		methodParams.postcode = $F('reg_postcode');
		methodParams.city = $F('reg_city');
		methodParams.country = $F('reg_country');
		methodParams.position = $F('reg_position');
		methodParams.phone = $F('reg_phone');
		methodParams.fax = $F('reg_fax');
		methodParams.newsletter = $F('reg_newsletter');
		
		var params = cx.utils.Helpers.createSrvCallParams('Gb_Module_Registration', 'registerUser', [], [methodParams, window.currentLanguage]);		
		new Ajax.Request('/GTServer.php',
		{
			method:'post',
			parameters: params,
			onSuccess: function(res) {
			    	var msg = eval(res.responseText);
					$('reg_spinner').style.display = 'none';
					if (msg > 0) {
						$('reg_form').style.display = 'none';
						$('reg_valid').style.display = 'block';
					} else {
						contentproxy.close();
					}
			    }.bind(this)
		});
		$('reg_spinner').style.display = 'block';
		
	},
	
	
	// validate register form fields
	validateRegister: function() {
		
		var fields = "reg_postcode reg_email reg_gender reg_name reg_lastname reg_company reg_street reg_postcode reg_city reg_country".split(' ');

		var regExpEmail = /^[a-z0-9][-a-z0-9._]*[a-z0-9]*\@[a-z0-9]([a-z0-9-]*[a-z0-9])+(\.[a-z0-9][-a-z0-9_-]?[a-z0-9]+)+$/i;

		var errors = 0;
		var field = null;
		var valid = false;
		
		for (var i=0; i<fields.length; i++) {
			field = fields[i];
			
			if (field.indexOf('email') >= 0) valid = $(field).value.match(regExpEmail) != null;
			else valid = $(field).value.length > 0;

			if (valid) {
				$(field).removeClassName('nlr_invalid');
			} else {
				$(field).addClassName('nlr_invalid');
				errors++;
			}
		}
		
		return errors;
		
	},

	
	// end user session
	logout: function() {
		
		var methodParams = [];
		var params = cx.utils.Helpers.createSrvCallParams('Gb_Module_Auth', 'logOut', [], [methodParams]);		
		new Ajax.Request('/GTServer.php',
		{
			method:'post',
			parameters: params,
			onSuccess: function(res) {
			    	var data = eval(res.responseText);
					window.location.reload();
			    }.bind(this)
		});
		return false;
		
	}
};