//*****************************************************************
function setSel(elem,n) {
	for(var i=0; i<elem.options.length; i++) {
		if (elem.options[i].value==n) {
			elem.options[i].selected=true;
			return;
		}
	}
}

//******************************************************************
function valSelect(elem,nazev,item) {
// elem - element Select formuláře
// nazev - název selektu
// item - která položka v pořadí nemá být vybrána
//      - -1 mohou být vybrány všechny

	var poc = elem.length;
	if(elem.selectedIndex<0) {
		alert("Nebyla vybrána žádná položka v nabídce "+nazev);
		elem.focus();
//		elem.select();
		return false;			
	}
	if(item>-1) {
		ind=elem.selectedIndex;
		if(ind==item) {
			alert("Nebyla vybrána žádná položka v nabídce "+nazev);
			elem.focus();
//			elem.select();
			return false;
		}
	}			
	return true;
}

//*****************************************************************
function valPsc(elem) {
	if(!valText(elem,"PSČ")) return false;
	var s=""+elem.value;
	if(!isIn(s,"0123456789") ) {
		alert("Položka může obsahovat jen číslice bez mezer");
		elem.focus();
		elem.select();
		return false;			
	}
	if(s.length!=5) {
		alert("PSČ může obsahovat pouze 5 číslic");
		elem.focus();
		return false;
	}
	return true;
}
//*****************************************************************
function valCislo(elem, nazev) {
	if(!valText(elem,nazev)) return false;
	var s=""+elem.value;
	if(!isIn(s,"0123456789") ) {
		alert("Položka může obsahovat jen číslice bez mezer");
		elem.focus();
		elem.select();
		return false;			
	}
	return true;
}
//*****************************************************************
function valCastka(elem) {
	var s = elem.value;
	var i= parseInt(s);
	if( !(isIn(s,"0123456789,") && (i>=0 && s!="") && count(s,',')<=1) ) {
		alert("Položka může obsahovat jen číslice bez mezer\n a jednu desetinnou čárku.");
		elem.focus();
		elem.select();
		return false;			
	}
	return true;
}
//*****************************************************************
function valText(elem,nazev) {
	var s=elem.value;
	if (s.length==0 || count(s, ' ')==s.length) {
		alert("Není zadaná položka: "+nazev);
		elem.focus();
		elem.select();
		return false;			
	} else 
		return true;		 
}
//*****************************************************************
function valPassw(elem,nazev) {
	var found;
	var s=elem.value;
	var validChars=set_alpha_upper;
	var validCharsLower=set_alpha_lower;
	var validCharsNr=set_numeric;

	if ( s.length<6 ){
		alert(nazev+" má méně než 6 znaků.");
		elem.value='';
		elem.focus();
		elem.select();
		return found;
	}
	
	found = false;
	for(i=0; !found && i<s.length; i++) {
		for(j=0; !found && j<validChars.length; j++) {
			found= found || s.charAt(i)==validChars.charAt(j);		
		}
	}
	if ( !found){
		alert(nazev+" neobsahuje žádné velké písmeno");
		elem.value='';
		elem.focus();
		elem.select();
		return found;
	}
		
	found = false;
	for(i=0; !found && i<s.length; i++) {
		for(j=0; !found && j<validCharsLower.length; j++) {
			found= found || s.charAt(i)==validCharsLower.charAt(j);		
		}
	}
	if ( !found){
		alert(nazev+" neobsahuje žádné malé písmeno");
		elem.value='';
		elem.focus();
		elem.select();
		return found;
	}	

	found = false;
	for(i=0; !found && i<s.length; i++) {
		for(j=0; !found && j<validCharsNr.length; j++) {
			found= found || s.charAt(i)==validCharsNr.charAt(j);		
		}
	}
	if (!found){
		alert(nazev+" neobsahuje žádnou číslici");
		elem.value='';
		elem.focus();
		elem.select();
		return found;
	}
	return true;
	
	
}
//*****************************************************************
function isIn(m, validChars) {
  var s=m;
	found=true;
	for(i=0; found && i<s.length; i++) {
		found=false;
		for(j=0; !found && j<validChars.length; j++) {
			found= found || s.charAt(i)==validChars.charAt(j);		
		}
	}
	return found;
}

//*****************************************************************
function count(s,charSet) {
	counter=0;
	for(i=0; i<s.length; i++) {
		if(charSet.indexOf(s.charAt(i)) > -1)
			counter++;
	}
	return counter;
}
//***************************************************
function Split2(s,c) {
	var arr= new Array;
	pre=0;
	for(n=0; (now=s.indexOf(c,pre))!=-1; n++) {
		arr[n]=s.substring(pre,now);
		pre=now+1;
	}
	arr[n]=s.substring(pre,s.length);
	return arr;
}
//***************************************************
function valDatum(dat)  {

	d=0;
	m=0;
	r=0;
	t1=0;
	t2=0;
	sep=".";
	ok1=true;
	var aDat = new Array();
	aDat=Split2(dat,sep);
	if(aDat.length!=3){
		ok1=false;
	}else{
		d=parseInt(aDat[0],10);
		r=aDat[2];
		m=parseInt(aDat[1],10);
		if(m<1 || m>12) ok1=false;
		if(d<1 || d>31) ok1=false;
		if(m==2 && d>29) ok1=false;
		if(m>1) {
			if("46911".indexOf(m)>-1 && d>30) ok1=false;
		}
	}
	if(!(r.length==4)) ok1=false;
	if(!ok1) alert("V datumu je chyba - "+dat);

	return ok1;		
}


var set_numeric = "0123456789";
var set_alpha = "aäábcčëdďeéěfghiíjklžmnňoóöpqrřsštťuúůüvwxyýzžAÄÁBCČËDĎEÉĚFGHIÍJKLĽMNŇOÓÖPQRŘSŠTŤUÚŮVWXYÝZŽ ";
var set_alpha_nodiacritic = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLĽMNOPQRSTUVWXYZ ";
var set_alpha_upper = 'AÄÁBCČËDĎEÉĚFGHIÍJKLĽMNŇOÓÖPQRŘSŠTŤUÚŮVWXYÝZŽ';
var set_alpha_lower = 'aäábcčëdďeéěfghiíjklžmnňoóöpqrřsštťuúůüvwxyýzž';
var set_numeric_spc = set_numeric + " ";
var set_real = set_numeric + ".,";
var set_alpha_numeric = set_numeric + set_alpha;
var set_alpha_numeric_dot = set_numeric + set_alpha + ".";
var set_alpha_numeric_pom = set_numeric + set_alpha + "-";
var set_alpha_numeric_dot_pom = set_numeric + set_alpha + ".-";
var set_email = set_numeric + set_alpha + "@_.";
var set_telephone = set_numeric + "+/- ";
var set_date = set_numeric + ".-/";
var set_login = set_numeric + set_alpha_nodiacritic + "-_";

function ChkInput(frm, nazev,  allow_set, pov ) {
  var i,c,val,len,res;

  val = frm.value; 
  if ((val=='') && (pov==1)) {
    alert("Položka " + nazev + " je povinná ");
    frm.focus();
	  frm.select();
    return(false);
  }
  if(allow_set=='') return(true);

  len = val.length;
  for(i=0;i<len; i++) {
    c = val.charAt(i);
    res = allow_set.indexOf(c);
    if(res < 0) {
      alert('Chyba v položce ' + nazev + ' \nNepovolený znak \'' + c + '\''); 
      frm.focus();
	    frm.select();
      return(false); 
    }
  }

  return(true);
}

function rtrim(s) {
  s = "" + s;
  var i = s.length;
  while (i>0) {
    if (s.charAt(i-1) != " ") break;
    i--;
  }
  return s.substring(0, i);
}

function CheckMail(mail){
  re = new RegExp("^[^@]+@[^.]+\..+$");
  return (re.test(mail));
}

