﻿formValidator = {};
formValidator.collect = function(a,f){
	var n=[];
	for(var i=0;i<a.length;i++){
		var v=f(a[i]);
		if(v!=null)
			n.push(v)
	}
	return n
};
formValidator.check = function(f){
	var g = function(n){
		return f.getElementsByTagName(n);
	};
	var nv = function(e){
		if(e.name)
		{

			if(e.validate)
			{
				var valStrs = [];
				
				valStrs = e.validate.split(',');
				for(var i=0;i<valStrs.length;i++){
					var args = [];
					args = valStrs[i].split(':');
					switch(args[0])
					{
						case "minLen":
							if(e.value.length<parseInt(args[1]))
							{
								return "notvalid:"+e.label;
							}
							break;
						case "email":
							if(e.value.length<7)
							{
								return "notvalid:"+e.label;
							}
							break;	
					}
				}
			}
			return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);
		}
		else 
		{
			return '';
		}
	};
	var i = formValidator.collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});
	var s = formValidator.collect(g('select'),nv);
	var t = formValidator.collect(g('textarea'),nv);
	var arr = [];
	arr = i.concat(s).concat(t);
	var errFields = "";
	for(var i=0;i<arr.length;i++) {
		var arg = arr[i].split(':');
		if(arg[0] == "notvalid")
		{
			if(errFields.length>0)
			{
				errFields+=", ";
			}
			errFields += arg[1];
		}
	}
	if(errFields.length>0)
	{
		alert("אנא בדוק את השדות הבאים: \n"+errFields);
		return false;
	}
	return true;
	//return i.concat(s).concat(t).join('&');
};