/*************************************************
class: validation
modified: 2004.01.13
project: Moon
version: 1.0
author: Audrius Naslenas, audrius@metasite.net
All rights reserved
*************************************************/
function validation(){
	//properciai
	this.forma='';
	this.errstr='';
	this.err=new Array();
	this.taitlas='';
	//metodai
	this.init=validation_init;
	this.load_errors=validation_errors;
	this.value=validation_value;
	this.option=validation_option;
	this.email=is_email;//del suderinamumo, bet pasenes jau
	this.is_email=is_email;
	this.is_asmens_kodas=is_asmens_kodas;
	this.nonempty=nonempty;
	this.in_set=in_set;
	this.is_int=is_int;
	this.is_float=is_float;
	this.make_int=make_int;
	this.make_float=make_float;
	this.trim=trim;
	this.get_obj=get_obj;
	this.get_all_objects=get_all_objects;
	this.error=validation_error;
	this.is_checked=is_checked;
	this.result=validation_result;
	
	//implementation
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 get_obj(vardas)
{
	var elem=this.forma.elements;
	for(i=0;i<elem.length;i++){
		if (elem[i].name==vardas) return elem[i];
	}
	return null;
}
function get_all_objects(name)
{
	var elem=this.forma.elements;
	var found=new Array();
	for(i=0;i<elem.length;i++){
		if (elem[i].name==name) found[found.length]=elem[i];
	}
	return found;
}

function in_set(c,set){
	set=set.toUpperCase();
	c=c.toUpperCase();
	for (var j = 0; j < c.length; j++){
		if (set.indexOf( c.charAt(j) ) == -1) {return false;}
	}
	return true;
}

function is_email(email) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email)){return (true);}
	else{return (false);}
}

function is_asmens_kodas(code) {
	var AKKS = "";
	if (code.length<11) return false;
	cAcceptableValues = "0123456789";
	for (var i=0;i<11;i++)
		if (cAcceptableValues.indexOf(code.charAt(i)) == -1) return false;
	if (code.charAt(0)*1<1) return false;
	var KS=code.charAt(10);
	AKKS = (code.charAt(0)*1 + code.charAt(1)*2+code.charAt(2)*3 + code.charAt(3)*4 + code.charAt(4)* 5 + code.charAt(5)* 6 + code.charAt(6)*7 + code.charAt(7)* 8 + code.charAt(8)* 9 + code.charAt(9)*1) % 11;
	if (AKKS == 10) {
	AKKS = (code.charAt(0)* 3 + code.charAt(1)* 4 + code.charAt(2)* 5 + code.charAt(3) * 6 + code.charAt(4) * 7 + code.charAt(5)* 8 + code.charAt(6) * 9 + code.charAt(7) * 1 + code.charAt(8)* 2 + code.charAt(9) * 3) % 11;
	if (AKKS == 10) AKKS = 0;
	}
	if (AKKS!=KS) return false;
	else return true;
}

function is_checked(vardas){
//true jei uzcekintas nors vienas is checkboxu 
  var elem=this.forma.elements;
  for(i=0;i<elem.length;i++){
  	if (elem[i].name==vardas && elem[i].checked) {return true;}
  }
  return false;
}

function validation_errors(mas){
	this.err=mas;
}
function validation_error(code){
	this.errstr+=this.err[code]+'\n';
}
function nonempty(name,code){
	var obj=this.get_obj(name);
	var o=this.trim(obj.value);
	obj.value=o;
	if (!o.length) {this.error(code); return false;}
	else {return true;}
}
function make_int(name){
	var obj=this.get_obj(name);
	var o=this.trim(obj.value);
	o=parseInt(o,10);
	if (isNaN(o)) o=0;
	obj.value=o;
}
function make_float(name){
	var obj=this.get_obj(name);
	var o=this.trim(obj.value);
	o=parseFloat(o);
	if (isNaN(o)) o=0;
	obj.value=o;
}
function is_int(name){
	var obj=this.get_obj(name);
	var o=this.trim(obj.value);
	obj.value=o;
	var o2=parseInt(o,10);
	if (isNaN(o2)) o2=0;
	if (o==o2){return true;}
	else {return false;}
}
function is_float(name){
	var obj=this.get_obj(name);
	var o=this.trim(obj.value);
	obj.value=o;
	var o2=parseFloat(o);
	if (isNaN(o2)) o2=0;
	if (o==o2){return true;}
	else {return false;}
}
function validation_value(name){
	var obj=this.get_obj(name);
	var o=this.trim(obj.value);
	if (o.length!=obj.value.length) obj.value=o;
	return o;
}
function validation_option(name){
	var obj=this.get_obj(name);
	var v=obj.options[obj.selectedIndex].value;
	return v;
}
function validation_init(forma,taitlas){
//inicializacija
	this.forma=forma;
	this.errstr='';
	this.taitlas=taitlas;
}
function validation_result(){
	if (this.errstr=='') {return true;}//f.submit(); } 
	else  {
		if (this.taitlas==null || this.taitlas==""){
			if (lang=='en') this.taitlas="Please fill in the form properly:";
			else this.taitlas="Nekorektiškai užpildyta forma:  ";
		}
		alert("\n"+ this.taitlas +"\n" + this.errstr + "\n");
		return false;
	}
}
	
}
