var errfound = false;

function ValidLength(item, len) {
   return (item.length >= len);
}

//function to validate an email address
function ValidEmail(item) {

   if (!ValidLength(item, 5)) return false;
   if (item.indexOf ('@', 0) == -1) return false;
   if (item.indexOf ('.', 0) == -1) return false;
   if (item.indexOf (' ', 0) != -1) return false;
   return true;
}

//function to validate check box
function ValidCheckbox(item) {
   if (item.value != 'Yes') return false;
   return true;
}

//function to validate drop down (list) box
function ValidDropDown(item) {
   item_index = item.selectedIndex;
   item_value = item.options[item_index].value;
   if (item_value == "0") return false;
   if (item_index == "0") return false;
   return true;
}

function error(elem, text) {
// abort if we already found an error

   if (errfound) return;
   window.alert(text);
   elem.select();
   elem.focus();
   errfound = true;
}

function error_drop(elem, text) {
// abort if we already found an error

   if (errfound) return;
   window.alert(text);
   elem.focus();
   errfound = true;
}

function ValidRadio(pocet, elem){
radiu=pocet

    zaskrtnuto=false;
    for (i=0;i<radiu;i++) {
      if (elem[i].checked) { zaskrtnuto=true;}
    }

	return zaskrtnuto;
}

function error2(text) {
// abort if we already found an error
   if (errfound) return;
   window.alert(text);
   errfound = true;
}

function emailCheck (emailStr) {

textik = emailStr;
mezera = true;
while (mezera)
	{
		if (textik.charAt(0) == " ")  // odstraneni mezer na zacatku retezce
			{ textik = textik.substring(1,textik.length);
			//	window.alert("mezera na zacatku"); 
			}
		else
			{	mezera = false; }	
	}

textik2 = textik;
mezera = true;
while (mezera)
	{
		if (textik2.charAt(textik2.length-1) == " ")  // odstraneni mezer na konci retezce
					{ textik2 = textik2.substring(0,textik2.length-1);
					// 	window.alert("mezera na konci"); 
					}
		else
			{ mezera = false; }
	}
	
emailStr = textik2;
// window.alert("kontrolni string <" + emailStr + ">");

var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  /* Too many/few @'s or something; basically, this address doesn't
     even fit the general mould of a valid e-mail address. */
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
if (user.match(userPat)==null) {
    // user is not valid
    return false
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
   host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
		return false
	    }
    }
    return true
}

// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {
   // the address must end in a two letter or three letter word.
   return false
}

// Make sure there's a host name preceding the domain.
if (len<2) {
   return false
}

// If we've gotten this far, everything's valid!
return true;
}
