/*************************************************
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){
//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) != ".") {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');
        //eval( "o=f.elements('" + name + "').value" );
        o=trim(o);
        eval('f.'+name+'.value=o');
        //eval( "f.elements('" + 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_radio_value(name)
{
	var f,o;
	f=this.forma;
	eval('o=f.'+name);
	for (var i=0; i < o.length; i++)
	{
		if (o[i].checked)
		{
			return o[i].value;
		}
	}
	return false;
}
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="sekundele!"; //Form is not filled up yet:
                }
                alert(this.taitlas +"\n" + this.errstr + "\n");
                return false;
        }
}

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.rad_val=validation_radio_value;
        this.email=validation_email;
        this.nonempty=validation_nonempty;
        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;

}
