var err="";
var fobj=0;
var errors=new Array();
var fltr=false;    
var prev=false; 

function showframe(o,t){
  o.style.display='block';
  if (prev && prev!=o) prev.style.display='none'; 
  o.style.top=t.offsetTop;
  o.style.left=t.offsetLeft+t.offsetWidth+3+"px";
  t.focus();
}

function drawsign(id,type,error){
  if (fltr==true){
    nc=document.createElement('div');
    nc.style.position="absolute";
    nc.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://ddaattaa.mellowmood.hu/formcheck/images/"+type+".png', sizingMethod='scale');";
  }
  else {
    nc=document.createElement('img');
    nc.src="http://ddaattaa.mellowmood.hu/formcheck/images/"+type+".png";
  }
  nc.id=id+"_m";
  nc.style.marginLeft="3px";
  nc.style.width="21px";
  nc.style.height="21px";
  
  if (type=='pirosfelk') {
    nc.style.cursor="help";
    nc.onmouseover=new Function("document.getElementById('formerror').style.display='block';");
    nc.onmouseout=new Function("document.getElementById('formerror').style.display='none';");
    nc.onmousemove=function (e){
      obj=document.getElementById('formerror');
      obj.lastChild.previousSibling.innerHTML=error;
      if (e==undefined) e=event;
      obj.style.top=e.clientY+document.documentElement.scrollTop+13+'px';
      obj.style.left=e.clientX+document.documentElement.scrollLeft+13+'px';
    }
  }
  dob=document.getElementById(id).parentNode;
  if (dob.lastChild.id==id+"_m") dob.replaceChild(nc,dob.lastChild);
  else dob.appendChild(nc);
}

function initcheck(obj){
  var arVersion = navigator.appVersion.split("MSIE");
  var ver = parseFloat(arVersion[1]);    
  if ((ver >= 5.5) && (document.body.filters)) fltr=true;
  else fltr=false;
  fobj=obj.id;
  obj.style.border='0px';
  obj.style.background='transparent';
  l=obj.form.elements;
  
  if (fltr==true) {
    obj.outerHTML="<div id='"+obj.id+"' onclick=\"document.getElementById('"+l[1-1].id+"').form.submit();\" style=\"cursor:pointer; width:150px; height:30px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+obj.src+"', sizingMethod='scale');\"></div>";
    
  }
  
  for (var i=0; i<l.length; i++){
    l[i].style.filter="alpha(opacity:'70')";
    l[i].style.opacity='0.7';
    l[i].onfocus=function(e) {
      this.style.filter="alpha(opacity:'100')";
      this.style.opacity='1';
      if (prev) prev.style.display='none';
    }
    l[i].onblur=function(e) {
      this.style.filter="alpha(opacity:'70')";
      this.style.opacity='0.7';
    }  
    if (l[i].id){
    
      t=l[i].id.split("_");
      if (t[0].toLowerCase()=='choose'){
        s=String(l[i].onchange);
        if (s.length>10){
          tmp=s.split('{');
          tt=tmp[1].split('}');
          core=tt[0];
          //core+=" error_check(this);";
          l[i].onchange=function(){ error_check(this); eval(core);};
        }
        else l[i].onchange=function(){ error_check(this);};
      }
      
      if (t[0].toLowerCase()=='date'){
        anyu=l[i].parentNode;
        l[i].readOnly='readonly';
        if (fltr==true){
          mim=document.createElement('span');
          mim.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://ddaattaa.mellowmood.hu/formcheck/images/kisnaptar.png', sizingMethod='scale');";
          mim.style.cursor='pointer';
          mim.style.width="21px";
          mim.style.height="21px";
          mim.style.styleFloat="left";
          mim.style.cssFloat="left";
        }
        else {
          mim=document.createElement('img');
          mim.src="http://ddaattaa.mellowmood.hu/formcheck/images/kisnaptar.png";
          mim.setAttribute("style","float:left; margin-left:3px; cursor:pointer;");
        }
        mim.onclick=function(){
          showframe(this.previousSibling.previousSibling,this.previousSibling);
        } 
        anyu.appendChild(mim);
        mif=document.createElement('iframe');
        mif.frameBorder="0";
        mif.src="./plugins/naptar.php?inp="+l[i].id+"&num="+i;
        mif.style.position='absolute';
        mif.style.display='none';
        mif.style.border='1px solid #ba1310';
        mif.style.width='156px';
        mif.style.height='179px';
        mif.style.zIndex='10000';
        mif.style.background='white';
        mif.id="naptar_"+l[i].id;
        anyu.insertBefore(mif,l[i]);  
        l[i].onfocus=new Function("showframe(this.previousSibling,this); this.style.filter=\"alpha(opacity:'100')\"; this.style.opacity='1';");
        l[i].onblur=function(e) {
          this.style.filter="alpha(opacity:'70')";
          this.style.opacity='0.7';
          prev=this.previousSibling; 
        }   
      }
      else {
        l[i].onfocus=new Function("if (prev) prev.style.display='none'; this.style.filter=\"alpha(opacity:'100')\"; this.style.opacity='1';");
        l[i].onblur=function() {
          this.style.filter="alpha(opacity:'70')";
          this.style.opacity='0.7';
        }
      }
    
      l[i].onkeyup=function() { error_check(this); }
      error_check(l[i]);
    }
  }
}

function check(obj){
  t=obj.id.split("_");
  err="";
  if (obj.value=="" && t[t.length-1]=="MAND") {err="Kötelező kitölteni!<br/>";}
  else if (obj.value=="" && t[t.length-1]!="MAND") err="";
  else{
    switch (t[0].toLowerCase()){
      case "char":{
        if (obj.value.length>t[1]) err="Maximum "+t[1]+" karakter!";
      }
      break;
      case "num":{
        if (isNaN(obj.value)) err="Csak számok!<br/>(pl: 12)";
        else if (obj.value==0) err="0 nem lehet!";
        else if (obj.value.length>t[1]) err="Maximum "+t[1]+" szám!<br/>(Pl: 12)";
      }
      break;
      case "numnull":{
        if (isNaN(obj.value)) err="Csak számok!<br/>(pl: 12)";
        else if (obj.value.length>t[1]) err="Maximum "+t[1]+" szám!<br/>(Pl: 12)";
      }
      break;

      case "time":{
        reg=/^(\d{1,2}):(\d{2})$/;
        if (!reg.test(obj.value)) err="Helytelen idő formátum!<br /> (pl: 21:35)";
      }
      break;
      case "tel":{
        reg=/^[0-9\/+ -]*$/;
        if (!reg.test(obj.value) || obj.value.length>18 || obj.value.length<7) err="Helytelen telefonszám megadás!<br/> (Pl: +36 20 444-5334)";
      }
      break;
      case "email":{
        reg=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
        if (!reg.test(obj.value)) err="Helytelen email cím megadás!<br /> (Pl: name@mailserver.com)";
      }
      break;
      case "fname":{
        if (!isNaN(obj.value)) err="Csak betűk, számok nem!<br /> (Pl: John)";
        else if (obj.value.length<2) err="Minimum 2 karakter!<br /> (Pl: Smith)";
      }
      break;
      case "lname":{
        if (!isNaN(obj.value)) err="Csak betűk, számok nem!<br/> (Pl: Smith)";
        else if (obj.value.length<2) err="Minimum 2 karakter!<br /> (Pl: Smith)";
      }
      break;
      case "name":{
        if (!isNaN(obj.value)) err="Csak betűk, számok nem! <br/> (Pl: John Smith)";
        else if (obj.value.length<6) err="Minimum 6 karakter!<br/> (Pl: John Smith)";
      }
      break;
      case "date":{
        reg=/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
        if (!reg.test(obj.value)) err="Válasszon dátumot";
      }
      break;
      case "choose":{
          if (obj.value=="" && obj.value=="0" ) {err="Kérem válasszon";}
      }
      break; 
    }
  }
  if (err!="") return false; 
  else return true;
}

function error_check(obj){
  if (!check(obj)){
    t=obj.id.split("_");
    drawsign(obj.id,"pirosfelk",err);
    hit=false;
    for (i=0; i<errors.length; i++){
      if (errors[i]==obj.id) hit=true;
    }
    if (!hit) errors[errors.length]=obj.id;
  }
  else{
    drawsign(obj.id,"zoldpipa",err);
    for (i=0; i<errors.length; i++){
      if (errors[i]==obj.id) errors.splice(i,1);
    }
  }
  if (errors.length==0) document.getElementById(fobj).style.display="";
  else document.getElementById(fobj).style.display="none";
}
