// Form kliensoldali validálás

// FormFactory


function formValidate(nev)
{

  eval('var form_fields=form_'+nev+'_fields;');
  eval('var form_types=form_'+nev+'_types;');
  eval('var form_req=form_'+nev+'_req;');
  eval('var form_valdata=form_'+nev+'_valdata;');  
  var n=form_fields.length;
  var i;
  var hiba=0;
  var ok=1;
  for (var a=0;a<n;a++) {
  	hiba=0;
  	if (form_req[a]) {
  		//alert(form_types[a]);
  		switch (form_types[a]) {
  			case 'password':
  				  if (document.getElementById(nev+form_fields[a]).value!=document.getElementById(nev+form_fields[a]+'2').value) hiba=1;  				  
  			case 'text':
  			case 'textarea':  			 				  
  				  var s=document.getElementById(nev+form_fields[a]).value;  				  
  				  if (isNaN(form_valdata[a])) {  				  	  				  	
					if (!s.match(form_valdata[a])) hiba=1;
  				  } else {  				  	
  				  	if (s.length<form_valdata[a]) hiba=1;
  				  }  				  
  				break;	
  			case 'combobox':
  				  var s=document.getElementById(nev+form_fields[a]).value;  				  
				  if(s.length < 1) hiba=1;
				break;
  			case 'select':
  				if (document.getElementById(nev+form_fields[a]).options[0].selected) hiba=1;
  				break;
  			case 'date':
  				  var y=document.getElementById(nev+form_fields[a]+'y').value;
  				  var d=document.getElementById(nev+form_fields[a]+'d').value;
  				  var m=document.getElementById(nev+form_fields[a]+'m').value;
  				  if (y<1900) hiba=1;  				  
				  if (DaysC(m)<d) hiba=1;
				  if (m==2) {
				  	if (daysInFebruary(y)<d) hiba=1;
				  }  				  
  				break;
  			case 'checkbox':
  				 if (!document.getElementById(nev+form_fields[a]).checked) hiba=1;
  				break;
  			case 'radio':
  				  var td=document.getElementById('td'+nev+form_fields[a]);
  				  var r_ok=false;
  				  for( var x = 0; td.childNodes[x]; x++ ) 
  				  	if (td.childNodes[x].nodeName=='INPUT')
  				  		if (td.childNodes[x].checked) r_ok=true;
  				  if (r_ok==false) hiba=1; 
  				break;
  			case 'tpl':
  			case 'tplleft':
  			case 'tplright':
  			case 'headertext':
  			default:
  				hiba=0;
  				break;
  		}
  	}

  	if ((form_types[a]!='headertext')&&(form_types[a]!='tpl')&&(form_types[a]!='tplright')&&(form_types[a]!='tplleft')) {
	  	if (hiba==1) {  		  		
	  		document.getElementById('td'+nev+form_fields[a]).className='formValidateError';
	  		ok=0;
	  	} else {
	  		document.getElementById('td'+nev+form_fields[a]).className='';
	  	}
  	}
  }
  return ok==1;
}

function daysInFebruary (year)
{
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysC(n) {
	for (var i = 1; i <= 12; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this[n];
}

//ComboBox
<!--
var fActiveMenu = false;
var oOverMenu = false;

function mouseSelect(e)
{
	if (fActiveMenu)
	{
		if (oOverMenu == false)
		{
			oOverMenu = false;
			document.getElementById(fActiveMenu).style.display = "none";
			fActiveMenu = false;
			return false;
		}
		return false;
	}
	return true;
}

function menuActivate(idEdit, idMenu, idSel)
{
	if (fActiveMenu) return mouseSelect(0);

	oMenu = document.getElementById(idMenu);
	oEdit = document.getElementById(idEdit);
	nTop = oEdit.offsetTop + oEdit.offsetHeight;
	nLeft = oEdit.offsetLeft;
	while (oEdit.offsetParent != document.body)
	{
		oEdit = oEdit.offsetParent;
		nTop += oEdit.offsetTop;
		nLeft += oEdit.offsetLeft;
	}
	oMenu.style.left = nLeft;
	oMenu.style.top = nTop;
	oMenu.style.display = "";
	fActiveMenu = idMenu;
	document.getElementById(idSel).focus();
	return false;
}

function textSet(idEdit, text)
{
	document.getElementById(idEdit).value = text;
	oOverMenu = false;
	mouseSelect(0);
	document.getElementById(idEdit).focus();
}

function comboKey(idEdit, idSel)
{
	if (window.event.keyCode == 13 || window.event.keyCode == 32)
		textSet(idEdit,idSel.value);
	else if (window.event.keyCode == 27)
	{
		mouseSelect(0);
		document.getElementById(idEdit).focus();
	}
}
document.onmousedown = mouseSelect;
//-->