function FormCheckInit(form,ignoreHidden,interval){
	var str="FormCheckInitWork('"+form+"',"+(ignoreHidden ? 'true' : 'false')+")";
	setTimeout(str,100);
	if(interval) setInterval(str,interval);
}

function FormCheckInitWork(form,ignoreHidden){
	if (isString(form))
		form=getId(form);
	var a=form.getElementsByTagName('INPUT');
	for(var i=0; i<a.length; i++)
		if ((a[i].type=='text')||(a[i].type=='password')){
/*		    a[i].onkeyup=new Function("e","FormCheckInput(this)"); */
			FormCheckInput(a[i],false,ignoreHidden ? true : false);
		}
}

function FormCheckTest(form){
	if (isString(form))
		form=getId(form);
	
	//nejdrive podle errorwinu
	var a=getElementsByClassName(form,'*','errorwin');
	for(var i=0; i<a.length; i++)
		if (!parseClassesContain(a[i].className,'hide')){
			return false;
		}
	
	//a nove jeste podle notvalid u inputu
	a=getElementByClassName(form,'*','notvalid');
	if(a){
	 return false;
	}
	
	return true;
}

function FormCheckInput(obj,objcol,ignoreHidden){
  if (isString(objcol))
		objcol=getId(objcol);
	
	if(!objcol && obj.className.indexOf('objcol_')>=0){
		var classes=parseClasses(obj.className);
		for(var i in classes){
			var css=classes[i];
			if(css.indexOf('objcol_')>=0){
				css=css.substring(css.indexOf('objcol_')+7);
				objcol=getId(css);
				if(objcol) break;
			}
		}
	}
	
	var errors=new Array();
	
	if(!ignoreHidden || (findHeight(obj)>0) ){
		if (parseClassesContain(obj.className,'cc_atleast4')){
			if (obj.value.length<4) 
				if ((!objcol)||(objcol.value.length<4)) 
					errors.push('err_short');
		}
		if (parseClassesContain(obj.className,'cc_atleast1')){
			if (obj.value.length<1){
				errors.push('err_short');
				errors.push('err_empty');
			}
		}
		if (parseClassesContain(obj.className,'cc_pass')){
			if (objcol && obj.value!=objcol.value) errors.push('err_notsame');
		}
		if (parseClassesContain(obj.className,'cc_email')){
			r=new RegExp('^\\w(\\w|-|\\.)*@(\\w|-|\\.)+\\.\\w+$');
			if ((obj.value || errors.length <= 0) && obj.value.match(r)==null) errors.push('err_notemail');
		}
		if (parseClassesContain(obj.className,'cc_phone')){
			r=new RegExp('^((\\+|00){0,1}\\d{3} {0,1}){0,1}\\d{3} {0,1}\\d{6}$');
			if ((obj.value || errors.length <= 0) && obj.value.match(r)==null) errors.push('err_notphone');
		}
		if (parseClassesContain(obj.className,'cc_phone_short')){	//bez predcisli
			r=new RegExp('^\\d{9}$');
			if ((obj.value || errors.length <= 0) && obj.value.match(r)==null) errors.push('err_notphone');
		}
		if (parseClassesContain(obj.className,'cc_postal')){
			r=new RegExp('^\\d{3} {0,1}\\d{2,3}$');
			if ((obj.value || errors.length <= 0) && obj.value.match(r)==null) errors.push('err_notpostal');
		}
		if (parseClassesContain(obj.className,'cc_login')){
			r=new RegExp('^\\w*$');
			if (obj.value.match(r)==null) errors.push('err_notvalid');
		}
	}
	
	var pcss=parseClasses(obj.className);
	if(errors.length>0){	//nastavime tridu i inputu
		var found=false;
		for(var i in pcss){
			if(pcss[i]=='notvalid'){
				found=true;
				break;
			}
		}
		if(!found){
			obj.className+=' notvalid';
			if(objcol) objcol.className+=' notvalid';			
		}		
	}else{	//odstranime tridu z inputu
		var ncss='';
		var found=false;
		for(var i in pcss){
			if(pcss[i]!='notvalid'){
				ncss+=pcss[i]+' ';
			}else
				found=true;		
		}	
		if(found){
			if(obj.className!=ncss) obj.className=ncss;
			if(objcol && objcol.className!=ncss) objcol.className=ncss;
		}	
	}

	if(obj.className.indexOf('errnode_')>=0){
		var classes=parseClasses(obj.className);
		for(var i in classes){
			var css=classes[i];
			if(css.indexOf('errnode_')>=0){
				css=css.substring(css.indexOf('errnode_')+8);
				var t=getId(css);
				showwin=false;
				for(var j=0; j<t.childNodes.length; j++){
					s=t.childNodes[j];
					if (isUndefined(s.className)) continue;
					show=false;
					for(var k=0; k<errors.length; k++)
						if (parseClassesContain(s.className,errors[k])){
							show=true;
							showwin=true;
							break;
						}
					SetVisibility(s, show );
				}
				SetClass(t, showwin ? 'errorwin' : 'errorwin hide');
				return showwin;		
				return true;
			}
		}
	}
		
	var index=MyOrderNum(obj);
	var parent=obj.parentNode;
	for(var i=index+1; i<parent.childNodes.length; i++){
		t=parent.childNodes[i];
		if (isUndefined(t.className)) continue;
		if (parseClassesContain(t.className,'errorwin'))
		{
			showwin=false;
			for(var j=0; j<t.childNodes.length; j++){
				s=t.childNodes[j];
				if (isUndefined(s.className)) continue;
				show=false;
				for(var k=0; k<errors.length; k++)
					if (parseClassesContain(s.className,errors[k])){
						show=true;
						showwin=true;
						break;
					}
				SetDisplaying(s, show );
			}
			SetClass(t, showwin ? 'errorwin' : 'errorwin hide');
			return showwin;
		}
	}
	
	return true;
}
