window.addEvent('domready', function(){
	var validator = new dwAvailabilityChecker({  
		trigger: 'keyup',  
		element: $('pseudo'),  
		availableImage: 'img/icons/accept.png',  
		takenImage: 'img/icons/delete.png',  
		offset: { x: 4, y: 4 },  
		minLength: 2,  
		url: 'ajax/pseudo-check.php'  
	});  		 
});


var dwAvailabilityChecker = new Class({        
	//implements  
	Implements: [Options],  

	//options  
    options: {  
	trigger: 'keyup',  
	offset: { x:0, y:0 },  
	element: '',  
	minLength: 2,  
	availableClass: 'available',  
	takenClass: 'taken',  
	availableImage: '',  
	takenImage: '',  
	url: 'ajax/pseudo-check.php'  
    },  
       
	//initialization  
	initialize: function(options) {  
	//set options  
	this.setOptions(options);  
	           
	//validate it  
	this.validate();  
	},  
      
	//a method that does whatever you want  
	validate: function() { 
	var blocReponse = $('disponibilite');
 	this.options.element.addEvent(this.options.trigger,function() {  
		if(this.options.element.value.length >= this.options.minLength) {  
			 
			var othis = this;
			var request = new Request({  
			url: othis.options.url,  
			method: 'get',  
			data: {  
				username: othis.options.element.value,  
				ajax: 1 
			},  
			onRequest: function() {  
			//remove existing classes  
			//othis.options.element.removeClass(othis.options.availableClass).removeClass(othis.options.takenClass); 
			blocReponse.removeClass('disponibilite').removeClass('checkValid').removeClass('checkValid');
			blocReponse.addClass('loading');
			},  
			onComplete: function(response) {
				if(response == 1) {
					blocReponse.removeClass('loading');
					blocReponse.addClass('checkValid');
					blocReponse.set('html', '<p><em>Disponible</em></p>');
				} else {
					blocReponse.removeClass('loading');
					blocReponse.addClass('checkError');
					blocReponse.set('text', '<p><em>Non disponible</em></p>');
				}  
			}  
		}).send();  
	}  
	}.bind(this));  
	},  
       
	//adds the image  
	injectImage: function(image) {  
           
	//figure out its position  
	var pos = this.options.element.getCoordinates();  
           
	var img = new Element('img',{  
		src: image,  
		styles: {  
 			'z-index': 100000,  
 			'position': 'absolute',  
			'top': pos.top + this.options.offset.y,  
			'left': pos.left + pos.width + this.options.offset.x  
		}  
	}).inject(document.body);          
	}   
});  