function trim(txt){
	while(txt.charAt(0)==' ') txt=txt.substring(1,txt.length);
	while(txt.charAt(txt.length-1)==' ') txt=txt.substring(0,txt.length-1);
	return txt;
}

function validation_in_set(c,set){
	var r,found;
	set=set.toUpperCase();
	for (var j = 0; j < c.length; j++){
		r=c.charAt(j).toUpperCase();
		found=false;
		for (var i = 0; i < set.length; i++){
			 if (set.charAt(i) == r ) { found=true;}
		}
		if (!found) return false;
	}
	return true;
}

function validation_is_checked(vardas){
//true jei uzcekintas nors vienas is checkboxu ch[] 
  var elem=this.forma.elements;
  for(i=0;i<elem.length;i++){
  	if (elem[i].name==vardas){
	  if (elem[i].checked) {return true;}
	}
  }
  return false;
}

function validation_email(email){
	var EmailCorrect = false
	for (var i = 0; i <= email.length; i++) {
		 if (email.charAt(i) == "@") {EmailCorrect = true}
	}
	for (var u = 0; u <= email.length; u++){
		 if (email.charAt(u) == "#" || 	 email.charAt(u) == "%" || 
			email.charAt(u) == "*" || 	email.charAt(u) == "?" || 
			email.charAt(u) == ";" ||	 email.charAt(u) == "/") {EmailCorrect = false}
	 }
	var EMLength = email.length
	if (email.charAt(EMLength-3) != "." && email.charAt(EMLength-4) != "." && email.charAt(EMLength-5) != ".") {EmailCorrect = false}
	return EmailCorrect;
}


function validation_errors(mas){
	this.err=mas;
}
function validation_error(code){
	this.errstr+=this.err[code]+'\n';
}
function validation_nonempty(name,code){
	var f,o;
	f=this.forma;
	eval('o=f.'+name+'.value');
	o=trim(o);
	eval('f.'+name+'.value=o');
	if (!o.length) {this.error(code); return false;}
	else {return true;}
}
function validation_make_int(name){
	var f,o;
	f=this.forma;
	eval('o=f.'+name+'.value');
	o=trim(o);
	o=parseInt(o,10);
	if (isNaN(o)) o=0;
	eval('f.'+name+'.value=o');
}
function validation_make_float(name){
	var f,o;
	f=this.forma;
	eval('o=f.'+name+'.value');
	o=trim(o);
	o=parseFloat(o);
	if (isNaN(o)) o=0;
	eval('f.'+name+'.value=o');
}
function validation_value(name){
	var f,o;
	f=this.forma;
	eval('o=f.'+name+'.value');
	o=trim(o);
	return o;
}
function validation_option(name){
	var f,v;
	f=this.forma;
	eval('v=f.'+name+'.options[f.'+name+'.selectedIndex].value');
	return v;
}
function validation_init(forma){
//inicializacija
	this.forma=forma;
	this.errstr='';
}
function validation_result(){
	if (this.errstr=='') {return true;}//f.submit(); } 
	else  {
		alert("\nNekorektiškai užpildyta forma:\n" + this.errstr + "\n");
		return false;
	}
}

function validation(forma){
	//properciai
	this.forma=forma;
	this.errstr='';
	this.err=new Array();
	//metodai
	this.init=validation_init;
	this.load_errors=validation_errors;
	this.value=validation_value;
	this.option=validation_option;
	this.email=validation_email;
	this.nonempty=validation_nonempty;
	this.in_set=validation_in_set;
	this.make_int=validation_make_int;
	this.make_float=validation_make_float;
	
	this.result=validation_result;
	
	this.error=validation_error;
	this.is_checked=validation_is_checked;

}