/**
 * File used to loging in a user
 *
 * @filename login.js
 *
 * @package Telecom-Object
 *
 * @author Frédéric Lehmann
 * @since 03/2011
 */
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.CheckBox");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Tooltip");

/**
 * Display the result of the login action
 *
 * @param oResponse
 *
 * @return Void
 */
function resultSubmit (oResponse) {
	if (oResponse.message != '')
		dojo.byId ('ajax_response').innerHTML = oResponse.message;

	if (oResponse.success == 1)
		//console.log (oResponse.uri);
		document.location.href = oResponse.uri;
}

/**
 * Submit the form
 *
 * @return Void
 */
function formSubmit () {
	if ( dijit.byId ('input_login').isValid() && dijit.byId ('input_passwd').isValid() )
	{
		var aValues = new Array ();
		aValues['login'] = dijit.byId ('input_login').attr ('value');
		aValues['password'] = dijit.byId ('input_passwd').attr ('value');
		aValues['lang'] = dijit.byId ('input_lang').attr ('value');
		aValues['remember'] = dijit.byId ('login_remember').checked;

		dojo.xhrPost ({
			'url': SITE_ROOT + 'controllers/identify.php',
			'content': aValues,
			'handleAs':"json",
			'load': resultSubmit,
			'error': resultSubmit
		});
	}
}

/**
 * Call the formSubmit function if the user press the enter key
 *
 * @param oKey
 *
 * @return Void
 */
function handleKeyDown (oKey) {
	if((window.event && oKey.keyCode == 13) || (oKey.which && oKey.which == 13))
		formSubmit ();
}

/**
 * Set up the html page to replace the input/select by the corresponding object in dojo
 *
 * @return Void
 */
dojo.addOnLoad (function () {
	new dijit.form.ValidationTextBox ({
				'value': dojo.byId('input_login').value, 
				'required': true, 
				'regExp': '^[0-9]{4,18}$',
				'invalidMessage': jsLang.login_invalid_login
				}, 'input_login');

	new dijit.form.ValidationTextBox ({
				'value': dojo.byId('input_passwd').value, 
				'regExp': '^[0-9a-zA-Z]{4,16}$',
				'required': true, 
				'invalidMessage': jsLang.login_invalid_pass, 
				'type': "password"
				}, 'input_passwd');

		
	var langStore = new dojo.data.ItemFileReadStore({
            data: {'identifier':'id',
            		'label':'name',
            		'items' : [{'id':'fr','name':jsLang.fr},{'id':'en','name':jsLang.en}]
            		}
        });

	new dijit.form.FilteringSelect ({id:'input_lang',
		value: "fr",
		store: langStore,
		searchAttr: "name"}, 'input_lang');
	new dijit.form.CheckBox ({
            checked: dojo.byId('login_remember').checked
        }, 'login_remember');

	new dijit.form.Button ({'label': jsLang.login_label_button}, 'login_submit');

	dijit.byId ('login_submit').onClick = function () { formSubmit (); }
	dijit.byId ('login_submit').onSubmit = function () { return false; }
	dojo.connect(dojo.byId('input_login'), 'onkeydown', handleKeyDown);
	dojo.connect(dojo.byId('input_passwd'), 'onkeydown', handleKeyDown);
	dojo.connect(dojo.byId('input_lang'), 'onkeydown', handleKeyDown);
	dojo.connect(dojo.byId('login_remember'), 'onkeydown', handleKeyDown);
});

