// Funkce provadi kontrolu, zda je pole prazdne
function isEmpty(aValue){
	var result = false;
	
	if (aValue.length == 0) result = true;

	return result;
}

// Funkce provadi kontrolu, zda se hodnota sklada z pozadovanych znaku
function checkValue(aValue, strValidChars){
   var strChar;
   var blnResult = true;

   for (i = 0; i < aValue.length && blnResult == true; i++)
      {
      strChar = aValue.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
}

// Funkce vraci, zda se jedna o INTEGER
function isInteger(aValue){
    return checkValue(aValue, "0123456789-");
}

// Funkce vraci, zda se jedna o FLOAT
function isFloat(aValue){
    return checkValue(aValue, "0123456789-,");
}

// Funkce vraci, zda se jedna o casovy udaj hh:mm:ss
function isTime(aValue){
 var values;
 var hour;
 var min;
 var result = false;

 values = aValue.split(":");
 if (values.length = 2){
  hour = values[0];
  min = values[1];
  if (hour >= 0 && hour <= 24){ 
   if (min >= 0 && min <= 59) result = true;
  }
 }
 return result;
}

// Funkce vraci, zda se jedna o datumovou hodnotu dd.mm.rrrr
function isDate(aValue){
 var values;
 var day;
 var month;
 var year;
 var result = false;

 if (aValue.length <= 10){
	 values = aValue.split(".");
	 if (values.length = 3){
	  day = values[0];
	  month = values[1];
	  year = values[2];
	  if (month >= 1 && month <= 12){ 
	   if (day >= 1 && day <= 31) {
	    if (! ((month==4 || month==6 || month==9 || month==11) && day==31)) result = true;
	   }
	  }
	  if (result && month == 2){
	   var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	   if (day>29 || (day==29 && !isleap)) result = false;
	  }
	 }
 }
 return result;
}

// Funkce vraci, zda se jedna o datum-cas dd.mm.rrr hh:mm:ss
function isDateTime(aValue){
 var values = aValue.split(" ");
 return (values.length == 2 && isDate(values[0]) && isTime(values[1]));
}

// Funkce vraci, zda se jedna o emailovou adresu
function isEmail(aValue){
 var result = false;

 if (aValue.length > 4 && aValue.indexOf("@") != -1) result = true;

 return result;
}

// Funkce provadi kontrolu na prazdnost fieldu
function checkEmpty(aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) alert("Není zadána hodnota !!!");
 else result = true;

 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu fieldu STRING
function checkString(aMin, aMax, aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (value.length < aMin || value.length > aMax) alert("Hodnota musí být v rozmezí od " + aMin + " do " + aMax + " znaků !!!");
   else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo STRING 
function checkEmptyOrString(aMin, aMax, aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkString(aMin, aMax, aField);  

 return result;
}

// Funkce provadi kontrolu fieldu INTEGER
function checkInteger(aMin, aMax, aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! isInteger(value)) alert("Hodnota není celočíselná !!!");
   else if (value < aMin || value > aMax) alert("Hodnota musí být celočíselná v rozmezí od " + String(aMin).replace(".",",") + " do " + String(aMax).replace(".",",") + " !!!");
    else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo Integer
function checkEmptyOrInteger(aMin, aMax, aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkInteger(aMin, aMax, aField);  

 return result;
}

// Funkce provadi kontrolu fieldu FLOAT
function checkFloat(aMin, aMax, aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! isFloat(value)) alert("Hodnota není číselná !!!");
   else if (value < aMin || value > aMax) alert("Hodnota musí být v rozmezí od " + String(aMin).replace(".",",") + " do " + String(aMax).replace(".",",") + " !!!");
    else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo Float 
function checkEmptyOrFloat(aMin, aMax, aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkFloat(aMin, aMax, aField);  

 return result;
}

// Funkce pro kontorlu fieldu DATETIME
function checkDateTime(aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! isDateTime(value)) alert("Hodnota není datumová nebo není ve formátu dd.mm.rrrr hh:mm !!!");
   else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo DATETIME 
function checkEmptyOrDateTime(aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkDateTime(aField);  

 return result;
}

// Funkce pro kontrolu fieldu DATE
function checkDate(aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! isDate(value)) alert("Hodnota není datumová nebo není ve formátu dd.mm.rrrr !!!");
   else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo DATE 
function checkEmptyOrDate(aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkDate(aField);  

 return result;
}

// Funkce pro kontrolu fieldu TIME
function checkTime(aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! isTime(value)) alert("Hodnota není časová nebo není ve formátu hh:mm !!!");
   else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo TIME 
function checkEmptyOrTime(aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkTime(aField);  

 return result;
}

// Funkce pro kontrolu emailu
function checkEmail(aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! isEmail(value)) alert("Hodnota není platná emailová adresa !!!");
   else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce provadi kontrolu, zda je field prazdny nebo EMAIL 
function checkEmptyOrEmail(aField){
 var result = false;
 var value = aField.value;

 if (isEmpty(value)) result = true;
 else result = checkEmail(aField);  

 return result;
}

// Funkce prevede retezec dd.mm.yyyy na cislo int
function cDateToInt(aString){
	var values;
	var datum;
	values = aString.split(".");
	if (values[0].length<2) values[0]="0"+values[0];
	if (values[1].length<2) values[1]="0"+values[1];	
	return parseInt(values[2]+values[1]+values[0]);
}

// Funkce prevede retzec dd.mm.yyyy na datumovou promenou
function strToDate(aString){
	var values;
	var datum;
	values = aString.split(".");
	datum = new Date(parseInt(values[2]), parseInt(values[1]), parseInt(values[0]), 0, 0, 0);
	return datum;
//	return Date.UTC(values[2], values[1], values[0], "0", "0", "0");
}

// Funkce pro kontrolu rodneho cisla
function checkRodneCislo(aField){
 var result = false;
 var value = aField.value;

 if (checkEmpty(aField))
  if (! checkValue(value, "0123456789")) alert("Hodnota není platné rodné číslo !!!");
   else result = true;
 
 if (! result) aField.focus();

 return result;
}

// Funkce, ktera otevre POPUP okno
function openWindow(aURL, aCaption, aTarget, aExtra){
	var win;
	win = window.open(aURL, aTarget, aExtra);
	win.setCaption = aCaption;
	
}

// Funkce, ktera provede kontrolu hesla
function checkPassword(aField1, aField2){
 var result = false;
 
 if (aField1.value != aField2.value) alert("Hodnoty se liší !!!");
	 else result = true;
	 
 if (! result) aField1.focus();	 
			
 return result;	
}

function WriteTFlash(src, width, height){
	html = "<object type=\"application/x-shockwave-flash\" data=\""+src+"\" width=\""+width+"\" height=\""+height+"\" id=\"topicflash\" name=\"topicflash\">   <param name=\"movie\" value=\""+src+"\" /> <PARAM NAME=\"quality\" VALUE=\"high\">  <PARAM NAME=\"bgcolor\" VALUE=\"white\"><EMBED src=\""+src+"\" quality=high bgcolor=#FFFFFF  WIDTH=\""+width+"\" HEIGHT=\""+height+"\" NAME=\"topicflash\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\" swLiveconnect=true> </EMBED></object>";
	document.write(html);
}
