/*************************************************
class: validation
modified: 2002.02.20
project: Cunami
version: 3.2
author: Audrius Naslenas, audrius@metasite.net (Metasite, http://www.metasite.net)
All rights reserved
*************************************************/

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, code){
//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;}
	}
  }
  this.error(code);
  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) != ".") {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_nonempty_id(name,code){
	var f,o;
	f=this.forma;
	eval('o=document.getElementById("'+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_is_int(name){
	var f,o,o2;
	f=this.forma;
	eval('o=f.'+name+'.value');
	o=trim(o);
	eval('f.'+name+'.value=o');
	o2=parseInt(o,10);
	if (isNaN(o2)) o2=0;
	if (o==o2){return true;}
	else {return false;}
}
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_is_float(name){
	var f,o,o2;
	f=this.forma;
	eval('o=f.'+name+'.value');
	o=trim(o);
	eval('f.'+name+'.value=o');
	o2=parseFloat(o);
	if (isNaN(o2)) o2=0;
	if (o==o2){return true;}
	else {return false;}
}
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,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==""){
			this.taitlas="Incorrect filled form:";
		}
		alert("\n"+ this.taitlas +"\n" + this.errstr + "\n");
		return false;
	}
}

function validation_dub_check(name, error){
	var i, j;
	var id1, id2;
	
	form = this.forma;
	for(i=0; i<form.length; i++){
		for(j=0; j<form.length; j++){
			if (i!=j) {
				if ((form[i].name==name) && (form[j].name==name)){
					id1 = form[i].options[form[i].selectedIndex].value;
					id2 = form[j].options[form[j].selectedIndex].value;
					if ((id1==id2) && (id1!=0)) {
						this.errstr = error;
						return false;
					}
				}
			}
		}
	}
	return true;
}

//function 
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=validation_email;
	this.nonempty=validation_nonempty;
	this.nonempty_id=validation_nonempty_id;
	this.in_set=validation_in_set;
	this.make_int=validation_make_int;
	this.is_int=validation_is_int;
	this.make_float=validation_is_float;
	this.is_float=validation_make_float;
	
	this.result=validation_result;
	
	this.error=validation_error;
	this.is_checked=validation_is_checked;
	this.dublicate_check=validation_dub_check;

}