var Validation = new Class({
	initialize: function(form_id){
        this.el = $(form_id);
		this.errorColl = 0;
	},
	
	checkEmpty:function(elem_num){
		if(this.el.elements[elem_num].value == ''){
			return true;
		}else{ 
			return false;
			}
	},
	setError:function(eln, er_num){
		if($(eln.name+'_check'))
			$(eln.name+'_check').remove();
		new Element('div',{'id':eln.name+'_check','class':'error'}).setText(error[er_num]).injectAfter(eln);
	//	$(eln+'_check').innerHTML = error[er_num];
		
		this.errorColl +=1;
	},
	erce:function(el_name){
		if($(el_name+'_check'))
			$(el_name+'_check').remove();
		this.errorColl =0;
	},
	mailval:function(ID){
		var mailValid = new Ajax('/user/validate/email/', 
								{method: 'post',
								postBody: 'email='+$(ID).value,
								onSuccess:function(response){
										var data = response;
										if(data){
										
										if($(ID+'_check')){
											$(ID+'_check').innerHTML = error[data];
										} else {
											new Element('div',{'id':ID+'_check','class':'error'}).setText(error[data]).injectAfter($(ID));
										}
										this.errorColl +=1;										
										}					
									}
								}).request();
	},
	fild:function(){
		for(var i = 0; i < this.el.elements.length; i++){
			var eln = this.el.elements[i].name;
			var setE = this.el.elements[i]; 
			switch(eln){
				case 'name':
				case 'city':
				case 'address':
				case 'password':
				//case 'country':
				case 'zipcode':
				case 'mail':
					if(this.checkEmpty(i)){
						 	this.setError(setE,0);
						}else{
							if($(setE.name+'_check'))
							$(setE.name+'_check').remove();
						}						
				break
				case 'mail_repeated':
				
					if(this.checkEmpty(i))
					{
						this.setError(setE,0); 
					}else if(this.el.elements[i-1].value.toLowerCase != this.el.elements[i].value.toLowerCase){ 
						new Element('div',{'id':this.el.elements[i].name+'_check','class':'error'}).setText(error[1]).injectAfter(setE);
						new Element('div',{'id':this.el.elements[i-1].name+'_check','class':'error'}).setText(error[1]).injectAfter(setE);
						this.errorColl +=1;
					}else {
						if($(setE.name+'_check'))
							$(setE.name+'_check').remove();
					}				
						 
				break
				
				case 'password_repeated':
					
					if(this.checkEmpty(i))
					{
						this.setError(setE,0); 
					}else if(this.el.elements[i-1].value != this.el.elements[i].value){ 
						new Element('div',{'id':this.el.elements[i].name+'_check','class':'error'}).setText(error[1]).injectAfter(setE);
						new Element('div',{'id':this.el.elements[i-1].name+'_check','class':'error'}).setText(error[1]).injectAfter(setE);
						this.errorColl +=1;
					}else {
						if($(setE.name+'_check'))
							$(setE.name+'_check').remove();
					}	

				break
				
				case 'condition':
					if(this.el.elements[i].checked != true)
						this.setError(setE,0)
						else 
							if($(setE.name+'_check'))
							$(setE.name+'_check').remove(); 	
				break	
			}
		}
		this.errorColl >0 ? false : this.el.submit();
	}
});
