ACC SHELL
/**
* DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/
// Declaring valid date character, minimum year and maximum year
var dtCh= ".";
var minYear=1900;
var maxYear=2100;
function GFE(formName, elementName)
{
var formObject = document.getElementById(formName);
var elementObject = formObject.elements[elementName];
return elementObject;
}
function isInteger(s)
{
var i;
for (i = 0; i < s.length; i++){
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
function is24Time(s)
{
//alert(s);
if(s.length != 5)
{
alert("Formát času je neplatný!");
return false;
}
if(s.indexOf(':') != 2)
{
alert("Formát času je neplatný!");
return false;
}
var hours = s.substring(0, 2);
var minutes = s.substring(3);
if(!isInteger(hours) || !isInteger(minutes))
{
alert("Formát času je neplatný!");
return false;
}
iHours = parseInt(hours);
iMinutes = parseInt(minutes);
if(iHours < 0 || iHours > 23)
{
alert("Hodiny musejí být mezi 0 a 23");
return false;
}
if(iMinutes < 0 || iMinutes > 59)
{
alert("Minuty musejí být mezi 0 a 59");
return false;
}
//alert("Cas je v poradku");
return true;
}
function stripCharsInBag(s, bag){
var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++){
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
for (var i = 1; i <= n; i++) {
this[i] = 31
if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
if (i==2) {this[i] = 29}
}
return this
}
function isDate(dtStr){
dtStr = dtStr.replace(/\s/g, "")
var daysInMonth = DaysArray(12)
var pos1=dtStr.indexOf(dtCh)
var pos2=dtStr.indexOf(dtCh,pos1+1)
var strDay=dtStr.substring(0,pos1)
var strMonth=dtStr.substring(pos1+1,pos2)
var strYear=dtStr.substring(pos2+1)
strYr=strYear
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
for (var i = 1; i <= 3; i++) {
if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
}
day=parseInt(strDay)
month=parseInt(strMonth)
year=parseInt(strYr)
if (pos1==-1 || pos2==-1){
alert("Datum ma být ve formátu den.mesic.rok, například 20.1.2010")
return false
}
if (strMonth.length<1 || month<1 || month>12){
alert("Neplatný měsíc")
return false
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
alert("Neplatný den v měsíci")
return false
}
if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
alert("Rok musi být zadán čtyřmi číslicemi a měl by být mezi "+minYear+" a "+maxYear)
return false
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
alert("Neplatné datum")
return false
}
return true
}
function firstSoonerThanSecond(a,b)
{
a = a.replace(/\s/g, "")
b = b.replace(/\s/g, "")
var a_daysInMonth = DaysArray(12)
var a_pos1=a.indexOf(dtCh)
var a_pos2=a.indexOf(dtCh,a_pos1+1)
var a_strDay=a.substring(0,a_pos1)
var a_strMonth=a.substring(a_pos1+1,a_pos2)
var a_strYear=a.substring(a_pos2+1)
a_strYr=a_strYear
if (a_strDay.charAt(0)=="0" && a_strDay.length>1) a_strDay=a_strDay.substring(1)
if (a_strMonth.charAt(0)=="0" && a_strMonth.length>1) a_strMonth=a_strMonth.substring(1)
for (var i = 1; i <= 3; i++) {
if (a_strYr.charAt(0)=="0" && a_strYr.length>1) a_strYr=a_strYr.substring(1)
}
a_day=parseInt(a_strDay)
a_month=parseInt(a_strMonth)
a_year=parseInt(a_strYr)
var b_daysInMonth = DaysArray(12)
var b_pos1=b.indexOf(dtCh)
var b_pos2=b.indexOf(dtCh,b_pos1+1)
var b_strDay=b.substring(0,b_pos1)
var b_strMonth=b.substring(b_pos1+1,b_pos2)
var b_strYear=b.substring(b_pos2+1)
b_strYr=b_strYear
if (b_strDay.charAt(0)=="0" && b_strDay.length>1) b_strDay=b_strDay.substring(1)
if (b_strMonth.charAt(0)=="0" && b_strMonth.length>1) b_strMonth=b_strMonth.substring(1)
for (var i = 1; i <= 3; i++) {
if (b_strYr.charAt(0)=="0" && b_strYr.length>1) b_strYr=b_strYr.substring(1)
}
b_day=parseInt(b_strDay)
b_month=parseInt(b_strMonth)
b_year=parseInt(b_strYr)
/*alert(a_day);
alert(a_month);
alert(a_year);
alert(b_day);
alert(b_month);
alert(b_year);*/
if(a_year > b_year)
{
alert("Datum \"od\" by mělo předcházet datu \"do\".");
return false;
}
if(a_month > b_month)
{
alert("Datum \"od\" by mělo předcházet datu \"do\".");
return false;
}
if(a_day > b_day)
{
alert("Datum \"od\" by mělo předcházet datu \"do\".");
return false;
}
return true;
}
function ValidateForm(){
var dt=document.frmSample.txtDate
if (isDate(dt.value)==false){
dt.focus()
return false
}
return true
}
ACC SHELL 2018