var checkObjects		= new Array();
var errors				= ""; 			
var returnVal			= false; 		
var language			= new Array(); 	
var selectecLanguage	= "hungarian";	
language.hungarian		= new Array();

language.hungarian.header		= "Hiba"
language.hungarian.start		= "->";
language.hungarian.field		= "";
language.hungarian.require	= " kitöltése kötelező";
language.hungarian.min			= " és tartalmaznia kell legalább ";
language.hungarian.max			= " és tartalmaznia kell legfeljebb ";
language.hungarian.minmax		= " és nem több mint ";
language.hungarian.chars		= " karaktert";
language.hungarian.num			= " és számokból kell állnia";
language.hungarian.email		= " tartalmaznia kell egy valós emailt";
language.hungarian.radio		= " jelölje meg";
language.hungarian.pwd		  = " egyezzen meg";
language.hungarian.option		= " közül válasszon egyet";


function define(n,type,HTMLname,min,max,d){
	var p;
	var i;
	var x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length){
    	d=parent.frames[n.substring(p+1)].document;
    	n=n.substring(0,p);
    }
	if(!(x=d[n])&&d.all) x=d.all[n];
	
 	for (i=0;!x&&i<d.forms.length;i++){
 		x=d.forms[i][n];
 	}

	for(i=0;!x&&d.layers&&i<d.layers.length;i++){
		x=define(n,type,HTMLname,min,max,d.layers[i].document);
		return x;		
	}
	
	eval("V_"+n+" = new formResult(x,type,HTMLname,min,max);");
	checkObjects[eval(checkObjects.length)] = eval("V_"+n);
}

function formResult(form,type,HTMLname,min,max){
	this.form = form;
	this.type = type;
	this.HTMLname = HTMLname;
	this.min  = min;
	this.max  = max;
}

function validate(v){
if (v==false) {	returnVal = true; return }	
	if(checkObjects.length>0){
		errorObject = "";
		pwd = '';
		for(i=0;i<checkObjects.length;i++){
			validateObject 			    = new Object();
			validateObject.form 	  = checkObjects[i].form;
			validateObject.HTMLname = checkObjects[i].HTMLname;
			validateObject.type 	  = checkObjects[i].type;

			if (validateObject.type != "radio") {
				if (validateObject.type == "option") {
					validateObject.val = validateObject.form.options[validateObject.form.options.selectedIndex].value;
				} else {
					validateObject.val 		= checkObjects[i].form.value;
					validateObject.len 		= checkObjects[i].form.value.length;
				}
				validateObject.min 		= checkObjects[i].min;
				validateObject.max 		= checkObjects[i].max;
			} else {
				validateObject.len 		=	checkObjects[i].form.length;
			}		

			if(validateObject.type == "num" || validateObject.type == "string"){
				if((validateObject.type == "num" && validateObject.len <= 0) || (validateObject.type == "num" && isNaN(validateObject.val))){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].require+language[selectecLanguage].num+"\n";
				} else if (validateObject.min && validateObject.max && (validateObject.len < validateObject.min || validateObject.len > validateObject.max)){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].require+language[selectecLanguage].min+validateObject.min+language[selectecLanguage].minmax+validateObject.max+language[selectecLanguage].chars+"\n";
				} else if (validateObject.min && !validateObject.max && (validateObject.len < validateObject.min)){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].require+language[selectecLanguage].min+validateObject.min+language[selectecLanguage].chars+"\n";
				} else if (validateObject.max && !validateObject.min &&(validateObject.len > validateObject.max)){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].require+language[selectecLanguage].max+validateObject.max+language[selectecLanguage].chars+"\n";
				} else if (!validateObject.min && !validateObject.max && validateObject.len <= 0){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].require+"\n";
				}
			} else if(validateObject.type == "email"){
				if((validateObject.val.indexOf("@") == -1) || (validateObject.val.charAt(0) == ".") || (validateObject.val.charAt(0) == "@") ||(validateObject.len < 6) || (validateObject.val.indexOf(".") == -1) || (validateObject.val.charAt(validateObject.val.indexOf("@")+1) == ".") || (validateObject.val.charAt(validateObject.val.indexOf("@")-1) == ".")){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].email+"\n";}
			} else if(validateObject.type == "radio"){
					ok = false
					for (var k=0; k<validateObject.len; k++) {
						if (validateObject.form[k].checked) ok = true
						if (validateObject.form[k].value == -1 && validateObject.form[k].checked) ok = false
					}
					if (!ok){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].radio+"\n";}
			} else if(validateObject.type == "pwd"){
					if (pwd == '') {pwd = validateObject.val}
					else if (pwd != validateObject.val) {errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].pwd+"\n";}
			} else if(validateObject.type == "option"){
				if (validateObject.val == -1){errors+=language[selectecLanguage].start+language[selectecLanguage].field+validateObject.HTMLname+language[selectecLanguage].option+"\n";}
			}
		}
	}
	if(errors){
		alert(language[selectecLanguage].header.concat("\n"+errors));
		errors = "";
		returnVal = false;
	} else {
		returnVal = true;
	}

}

