<!-- <![CDATA[
var txt_lng=[];
var errors=[];
function check_mail(value){return value.match(/^[a-z][\w\.-]*\w@([\w-]+\.)+[a-z]{2,4}$/)
}

function trim (str, chars) {return ltrim(rtrim(str, chars), chars);}
function ltrim(str, chars) {chars = chars || "\\s";return str.replace(new RegExp("^[" + chars + "]+", "g"), "");}
function rtrim(str, chars) {chars = chars || "\\s";return str.replace(new RegExp("[" + chars + "]+$", "g"), "");}

var FormSend=Class.create();
FormSend.prototype={
	options:{
		action:null,
		XML:false,
		xmlPath:'/content/dynamic/',
		ext:'.php',
		withCheck:true,
		errBgColor:'#f00',
		okBgColor:'#fff'
	},
	
	element:null,
	errors:{
		req:[],
		emails:[],
		sames:[]
	},
	
	initialize: function(element,options){
		this.element=$(element);
		this.setOptions(options);
		if(this.options.withCheck)
			this.addCheck();
		this.addSend();
	},
		
	setOptions: function(options) {
		Object.extend(this.options, options || {});
	},
	
	addCheck: function(){
		var reqs=document.getElementsByClassName('req');
		var emails=document.getElementsByClassName('email');
		var sames=document.getElementsByClassName('same');
		
		var self=this;
		
		for(var i=0;i<reqs.length;i++){
			
			reqs[i].id='r'+i;
			reqs[i].onblur=function(){
				if(this.value=='' || !this.value || trim(this.value)==''){ 
					this.style.backgroundColor=self.options.errBgColor; 
					self.errors.req[this.id.replace('r','')]=1;
				}
				else{ 
					this.style.backgroundColor=''; 
					self.errors.req[this.id.replace('r','')]=0;
				}
			}
		}
		
		for(var i=0;i<emails.length;i++){
			
			emails[i].id='s'+i;
			emails[i].onchange=function(){
				if(!check_mail(this.value)){ 
					this.style.backgroundColor=self.options.errBgColor; 
					self.errors.emails[this.id.replace('e','')]=1;
				}
				else{ 
					this.style.backgroundColor=''; 
					self.errors.emails[this.id.replace('e','')]=0;
				}
			}
		}
		
		for(var i=0;i<sames.length;i++){
			sames[i].id='s'+i;			
			sames[i].onchange=function(){				
				if($(this.nextSibling.nodeValue) && $(this.nextSibling.nodeValue).value!=this.value){ 
					this.style.backgroundColor=self.options.errBgColor; 
					self.errors.sames[this.id.replace('s','')]=1;
				}
				else{ 
					this.style.backgroundColor=''; 
					self.errors.sames[this.id.replace('s','')]=0;
				}
			}
		}
		
		this.element.afterSubmit=function(){
			var reqs=document.getElementsByClassName('req');
			var emails=document.getElementsByClassName('email');
			var sames=document.getElementsByClassName('same');
			
			for(var i=0;i<reqs.length;i++){ 
				par=reqs[i].parentNode;
				while(par.tagName!='FORM') par=par.parentNode;
				if(par.id!=self.element.id) continue;
				
				reqs[i].onblur();
			}
			for(var i=0;i<emails.length;i++){ 
				par=emails[i].parentNode;
				while(par.tagName!='FORM') par=par.parentNode;
				if(par.id!=self.element.id) continue;

				emails[i].onchange();
			}
			for(var i=0;i<sames.length;i++){ 
				par=sames[i].parentNode;
				while(par.tagName!='FORM') par=par.parentNode;
				if(par.id!=self.element.id) continue;
				
				sames[i].onchange();
			}
			
			err=0;
			//if(errors.length>0) {
				for(var i in self.errors.req) if(self.errors.req[i]==1){ err=1; break;}
				for(var i in self.errors.emails) if(self.errors.emails[i]==1){ err=1; break;}
				for(var i in self.errors.sames) if(self.errors.sames[i]==1){ err=1; break;}
			//}
			
			if(err){
				alert(txt_lng['alert_err']);
				return false;
			}
			return true;
		}
	},
	
	addSend: function(){
		var self=this;
		this.element.onsubmit=function(){
			self.changeFields(this,false);
			if(typeof this.afterSubmit!='undefined' && !this.afterSubmit()){
				self.changeFields(this,true);
				return false;
			}
			var div=document.createElement('div');
			with(div.style){
				backgroundColor=self.options.okBgColor;
				color='#000';
				border='1px solid black';
				position='absolute';
				top='50px';
				left='25px';
				zIndex='1000';
				padding='20px';
				fontWeight='bold';
				fontSize='15px';
				textAlign='center';
			}
			div.innerHTML=txt_lng['pls_whait_sending'];
			this.appendChild(div);
			var url=self.prepareUrl(this,self);
			new Ajax.Request(url[0],{
				parameters:url[1],
				XML:self.options.XML,
				onSuccess: function(xmlhttp){
					//var xmlDoc=getXML(xmlhttp);
					self.element.lastChild.innerHTML=txt_lng['sending_done'];
					var buttonOk=document.createElement('input');
					buttonOk.type='button';
					buttonOk.value='Ok';
					with(buttonOk.style){
						backgroundColor='#FFEED3';
						fontSize='15px';
						padding='5px';
						width='70px';
						marginTop='10px';
					}
					buttonOk.onclick=function(){
						self.changeFields(self.element,true);
						self.element.reset();
						Element.remove(this.parentNode);
					}
					self.element.lastChild.appendChild(document.createElement('br'));
					self.element.lastChild.appendChild(buttonOk);
				}
			});
			return false;
		}
	},
	
	changeFields: function(element,active){
		element=$(element);
		var elements=element.elements;
		for(var i=0;i<elements.length;i++){
			if(!active){
				elements[i].disabled=true;
				elements[i].readonly=true;
			}
			else{
				elements[i].disabled=false;
				elements[i].readonly=false;
			}
		}
	},
	
	prepareUrl: function(element,cl){
		element=$(element);
		var elements=element.elements;
		var url=[];
		for(var i=0;i<elements.length;i++){
			if(typeof elements[i]=='undefined' || !elements[i].name || !elements[i].value) continue;
			url.push(elements[i].name+'='+elements[i].value);
		}
		var u=(cl.options.XML ? cl.options.xmlPath:'')+(cl.options.action ? cl.options.action+cl.options.ext : element.action);
		return [u,url.join('&')];
	}
}

// ]]> -->