// TODO: chop
// URL validator SimpleChecker?

// szám ellenőrzése, ha allowEmpty true, akkor a mező lehet üres
// ha max és min is = 0 akkor nem vizsgálja a szám nagyságát
function js_NumValidator(field, min, max, allowEmpty, text) {
  if (field.value != "") {
    var numre = /^[0-9]+$/;
    if ( ! numre.test(field.value) ) {
      alert("A(z) <<" + text + ">> mezőbe csak szám írható!");
      field.focus();
      return(false);
    }
    if ( (field.value < min || field.value > max) && max != 0 && min != 0 ){
      alert("A(z) <<" + text + ">> mezőbe " + min + " és " + max + " közé eső szám írható!");
      field.focus();
      return(false);
    }
    return(true);
  } else {
    if ( allowEmpty ) {
      return(true);
    } else {
      alert("A(z) <<" + text + ">> mezőt ki kell tölteni.");
      field.focus();
      return(false);
    }
  }
  return(true);
}

function js_SzintValidator(field1,field2,text1,text2){
  var a = field1.value;
  var b = field2.value;
  a++; b++;
  if ( a > b ) {
    alert("<<" + text1 + ">> nem lehet nagyobb, mint <<" + text2 + ">>" );
    return(false);
  }
  return(true);
}

function js_StringValidator(field, minLength, maxLength, allowEmpty, regexp, text){
  if (field.value != ""){
    if ( regexp != "" ){
      var reg = regexp;
      if ( ! reg.test(field.value) ) {
        alert("<<" + text + ">> : nem megengedett karakter a szövegben.");
        field.focus();
        return(false);
      }
    }
    if ( field.value.length < minLength ) {
      alert("A(z) <<" + text + ">> mező tartalma minimum "+ minLength + " hosszú lehet!");
      field.focus();
      return(false);
    } else {
      if ( field.value.length > maxLength && maxLength != 0 ) {
        alert("A(z) <<" + text + ">> mező tartalma maximum "+ maxLength + " hosszú lehet!");
        field.focus();
        return(false);
      } else {
       return(true);
      }
    }    
  } else {
    if ( allowEmpty ) {
      return(true);
    } else {
      alert("A(z) <<" + text + ">> mezőt ki kell tölteni.");
      field.focus();
      return(false);
    }
  }
  return(true);
}

function js_EmailValidator(field, allowEmpty, text){
  if (field.value != ""){
    var emailre = /^[A-Z0-9][\-\.A-Z0-9]*\@\[?[\-\.A-Z0-9]+\.([A-Z]{2,4}|[0-9]{1,4})\]?$/gi;
    if ( emailre.test(field.value) ) {
      return(true);
    } else {
      alert("Hibás e-mail cím a(z) <<" + text + ">> mezőben.");
      field.focus();
      return(false);
    }
  } else {
    if ( allowEmpty ) {
      return(true);
    } else {
      alert("A(z) <<" + text + ">> mezőt ki kell tölteni.");
      field.focus();
      return(false);
    }
  }
  return(true);
}

function js_ReplaceEnter(textEl) {
  textEl.value = textEl.value.replace(/\r\n/gi,"<br>");
  textEl.value = textEl.value.replace(/\n/gi,"<br>");
  textEl.focus();
}

function js_RemoveEnter(field) {
  field.value = field.value.replace(/\r\n/gi," ");
  field.value = field.value.replace(/\n/gi," ");
  return(true);
}

function js_EqPassword(pw1,pw2){
  if (pw1.value == pw2.value ) {
    return(true);
  } else {
    alert("A két jelszó nem egyezik meg.");
    pw2.focus();
    return(false);
  }
}

//
//az év hó nap biztosan számok
//
function js_DateValidator(ev, ho, nap, allowEmpty, text) {
  if (ev.value != ""){
    if ( ho.value < 1 || ho.value > 12 ) {
      alert("Érvénytelen hónap.");
      ho.focus();
      return(false);
    }
    if ( nap.value < 1 ) {
      alert("Érvénytelen nap.");
      nap.focus();
      return(false);
    }
    if ( ( ho.value == 1 || ho.value == 3 || ho.value == 5 || ho.value == 7 ||
           ho.value == 8 || ho.value == 10 || ho.value == 12 ) && nap.value > 31 ){
      alert("Érvénytelen nap.");
      nap.focus();
      return(false);
    }
    if ( ( ho.value == 4 || ho.value == 6 || ho.value == 9 || ho.value == 11 ) 
         && nap.value > 30 ){
      alert("Érvénytelen nap.");
      nap.focus();
      return(false);
    }
    isLeap = false;
    if ( ev.value % 400 == 0 ) {
      isLeap = true;
    } else {
      if ( ev.value % 100 == 0 ) {
        isLeap = false;
      } else {
        if ( ev.value % 4 == 0 ) {
          isLeap = true;
        }
      }
    }
    if ( ( isLeap && ho.value == 2 && nap.value > 29 ) ||
         ( !isLeap && ho.value == 2 && nap.value > 28 ) ) {
      alert("Érvénytelen nap.");
      nap.focus();
      return(false);
    }
    return(true);
  } else {
    if ( allowEmpty ) {
      return(true);
    } else {
      alert("A(z) <<" + text + ">> dátumot ki kell tölteni.");
      ev.focus();
      return(false);
    }
  }
  return(true);
}

function js_Confirm(text) {
  return confirm(text);
}

function js_TextAreaLength(ta,tal,maxLength) {
  if (ta.value.length > maxLength) {
    ta.value = ta.value.substring(0,maxLength);
    tal.value = 0;
  } else {
    tal.value = maxLength - ta.value.length;
  }
  return(true);
}

function js_ReplaceUnicode(text) {
  var kotoTxt = String.fromCharCode(8209)+'|'+String.fromCharCode(8211)+'|'+String.fromCharCode(8212)+'|'+String.fromCharCode(8213);
  var kotoRe  = new RegExp(kotoTxt,"g");
  text.value = text.value.replace(kotoRe,'-');
  
  var idezoTxt = String.fromCharCode(8220)+'|'+String.fromCharCode(8221)+'|'+String.fromCharCode(8222)+'|'+String.fromCharCode(8243);
  var idezoRe  = new RegExp(idezoTxt,"g");
  text.value = text.value.replace(idezoRe,'"');
  
  var apostrTxt = String.fromCharCode(8216)+'|'+String.fromCharCode(8217)+'|'+String.fromCharCode(8219)+'|'+String.fromCharCode(8242);
  var apostrRe  = new RegExp(apostrTxt,"g");
  text.value = text.value.replace(apostrRe,"'");
  
  var egyebTxt = String.fromCharCode(8215);
  var egyebRe  = new RegExp(egyebTxt,"g");
  text.value = text.value.replace(egyebRe,"_");
  
  var egyebTxt = String.fromCharCode(8218);
  var egyebRe  = new RegExp(egyebTxt,"g");
  text.value = text.value.replace(egyebRe,",");
  
  var egyebTxt = String.fromCharCode(8230);
  var egyebRe  = new RegExp(egyebTxt,"g");
  text.value = text.value.replace(egyebRe,"...");
  
  var egyebTxt = String.fromCharCode(8260);
  var egyebRe  = new RegExp(egyebTxt,"g");
  text.value = text.value.replace(egyebRe,"/");
  
  var egyebTxt = String.fromCharCode(8364);
  var egyebRe  = new RegExp(egyebTxt,"g");
  text.value = text.value.replace(egyebRe,"&euro;");
  
  var egyebTxt = String.fromCharCode(8482);
  var egyebRe  = new RegExp(egyebTxt,"g");
  text.value = text.value.replace(egyebRe,"<small><sup>TM</sup></small>");
}

function js_WordLength(text,maxLength) {
  var re = /\s*-+\s*|\s+/;
  var list = text.value.split(re);
  var i = 0; 
  while ( i < list.length) {
    if ( list[i].length > maxLength ) {
      alert("\""+list[i]+"\" \nszó lehet, hogy szétnyomja a jobb oldali\ndobozokat. Használjon elválasztójelet.");
      text.focus();
      return(false);
    }
  i++;
  }
  return(true);
}

function js_TextLength(text,maxLength) {
  if ( text.value.length > maxLength ) {
    alert("A szöveg hosszabb, mint " + maxLength + " karakter.");
    text.focus();
    return(false);
  }
  return(true);
}

function storeCaret (textEl) {
  if (textEl.createTextRange) {
    textEl.caretPos = document.selection.createRange().duplicate();
  }
}
 
function insertAtCaret(textEl, text) {
  if ( document.selection.type == "None" && textEl.caretPos && textEl.caretPos.text != "" ) {
    textEl.value += text; 
  } else {
    if (textEl.createTextRange && textEl.caretPos) {
      var caretPos = textEl.caretPos;
      caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
    } else {
      textEl.value  = text;
    }
  }
  textEl.focus();
}

function addText(tArea,ic1,ic2) { 
  if ( document.selection.type == "None" ) {
    if ( tArea.caretPos && tArea.caretPos.text != "" ) {
      tArea.value += ic1+ic2; 
    } else {
      insertAtCaret(tArea,ic1+ic2);
    }
  } else {
    var sel = document.selection.createRange();
  	if (sel.parentElement().name == tArea.name ) {
			sel.text = ic1+sel.text+ic2;	
    } else {
			tArea.value += ic1+ic2; 
    }
  }
  tArea.focus();
} 

function removeNoSpam(a) { 
  a.href=a.href.replace(/No-SpaM./g, ""); 
  return true; 
}

function statNoSpam(a, b) {
  if (b) { 
    window.status=a.href.replace(/No-SpaM./g, ""); 
  } else { 
    window.status=""; 
  }
}
