/**validIt(name,whatis,msg)
 * funkcja waliduje pola
 * @param name - id pola
 * @param whatis - co ma sprawdzac np mail
 * @param msg - komunikat bledu
 * @param empty -  1- dozwolone puste ale sprawdz wzor 
 *                 0- nie dozwolone puste, sprawdz wzor 
 *                 2- dozwolone puste nie sprawdzaj wzorow 
 *                 3- nie dozwolone puste nie sprawdzaj wzorow
 * @return true ok false blad 
 */ 
function validIt(name,whatis,msg,empty){
  var txt = $(name).value;
  var example;
  var isoktxt;
  var advice='';
  var isit='';
  switch (whatis){
    case 'mail':
      example=/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/ 
    break;
    case 'cena':
      example=/^[1-9]{1}[0-9]{0,}.{0,1}[0-9]{0,2}$/;
    break;
    //case 'url1':
    //  example=/^(www.)[A-Z0-9]{1,}[.]{1}[A-Z0-9]{1,}$/;
    break;
    //case 'url':
    //  example=/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\;
    //break;
    case 'alfanum': //letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed
      example=/^[a-zA-Z0-9\s]+$/;
    break;
    case 'alfa':
      example=/^[a-zA-Z\s]+$/;
    break;
    case 'kod':
      example=/^[0-9]{5}$/;
    break;
    case 'nip':
      example=/^[a-zA-Z]{3}[a-zA-Z]{3}[a-zA-Z0-9]{5}[a-zA-Z0-9]{5}$/;
    break;
    case 'regon':
      example=/^[0-9]{11}$/;
    break;
    case 'number':
      example=/^[0-9]+$/;
    break;
    case 'phone':
      example=/^[0-9]{3}[.]{1}[0-9]{7}$/;
    break;
    default:
  }
  if(empty==1){
    txt=Trim(txt);
    if(txt.length==0){
      isoktxt=true;
    }else{
      isoktxt=example.exec(txt);
    }
  }
  if(empty==0){
    txt=Trim(txt);
    if(txt.length==0){
      isoktxt=false;
    }else{
      isoktxt=example.exec(txt);
    }
  }
  if(empty==2){
    isoktxt=true;
  }
  if(empty==3){
      txt=Trim(txt);
    if(txt.length==0){
      isoktxt=false;
    }else{
      isoktxt=true;
    }
  }
  
  if(showMsg(name,msg,isoktxt))
    return true;
  else
    return false;
}


/**showMsg(name,msg,isok)
 * pokazuje, uryawa komunikat 
 */ 
function showMsg(name,msg,isoktxt){
if (!isoktxt){
    $(name).removeClassName('validation-passed');
		$(name).addClassName('validation-failed');
		advice = '<div class="validation-advice" id="advice-'+name+'" style="display:none">'+msg+'</div>';
    isit=$('advice-'+name+'');
		if(typeof isit=='undefined'){
      new Insertion.After($(name), advice);
    }
		  if(typeof Effect == 'undefined') {
			 $('advice-'+name).style.display = 'block';
		  } else {
  			new Effect.Appear($('advice-'+name), {duration : 1 });
	   	}
	   	return false;
  }else{
    $(name).removeClassName('validation-failed');
		$(name).addClassName('validation-passed');
		isit=$('advice-'+name+'');
    if(typeof isit != 'undefined') $('advice-'+name+'').hide();
		return true;
  }
}


/**Trim(TheString)
 * Funkcja usuwajaca spacje z ciagu znakow
 * @param TheString
 * @return TheString  
 */ 
function Trim(TheString){
	var len;

	len = TheString.length;
 	while(TheString.substring(0,1) == " "){ //trim left
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}

 	while(TheString.substring(len-1, len) == " "){ //trim right
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}
 	return TheString;
}

