/*
	FocusManager
	Requires Mootool 1.2 Core
	Requires lib.ok.utils.RequireUtils
	Ok!nteractif
*/

var FOCUS_FIELD_CLASSES = [
	'js-ch-autoReset',
	'js-ch-autoResetPassword'
];

var FocusManager = 
{
	generate		: function()
	{
		FOCUS_FIELD_CLASSES.each(function(fieldClass){
			$$('.' + fieldClass).each(function(field) {
				field.setProperty('defaultValue', field.getProperty('value'));
				field.addEvent('focus', this.focusHandler.bindWithEvent(this, fieldClass));
				field.addEvent('blur', this.blurHandler.bindWithEvent(this, fieldClass));
			}.bind(this));
		}.bind(this));
	},
	
	focusHandler	: function(event, fieldClass)
	{
		
		var field = event.target;
		if(field.getProperty('value') == field.getProperty('defaultValue')) field.setProperty('value', '');
		if(fieldClass.match(/password/i)){
			field.removeEvents('blur', this.blurHandler);
			var passwordField = new Element('input', {
				'type': 		'password',
				'id': 			field.get('id')+'_real',
				'name': 		field.get('name'),
				'title': 		field.get('title'),
				'value': 		field.get('value'),
				'defaultValue': field.get('defaultValue'),
				'class': 		field.get('class'),
				'maxlength': 	field.get('maxlength'),
				'events':		{
					'blur' : 	this.blurHandler.bindWithEvent(this, fieldClass)
				}
			});
			passwordField.cloneEvents(field, 'keypress');
			passwordField.replaces(field);
			
			
			setTimeout(function(){ 
				passwordField.focus();
			}.bind(this), 100);
		}
	},

	blurHandler		: function(event, fieldClass)
	{
		//alert('blur')
		var field = event.target;
		if(field.getProperty('value') == ''){
			if(fieldClass.match(/password/i)){
				field.removeEvent('focus', this.focusHandler);
				var textField = new Element('input', {
					'type': 		'text',
					'id': 			field.get('id'),
					'name': 		field.get('name'),
					'title': 		field.get('title'),
					'value': 		field.get('value'),
					'defaultValue': field.get('defaultValue'),
					'class': 		field.get('class'),
					'maxlength': 	field.get('maxlength'),
					'events':		{
						'focus' : 	this.focusHandler.bindWithEvent(this, fieldClass)
					}
				});
				textField.cloneEvents(field, 'keypress');
				textField.replaces(field);
				field = textField;
			}
			field.setProperty('value', field.getProperty('defaultValue'));
		}
	}

};

window.addEvent('domready', function(){
	if(RequireUtils.checkForAttribute('FocusManager', 'autoInit'))
		FocusManager.generate();						 
});