home *** CD-ROM | disk | FTP | other *** search
- ////////////////////////////////////////////////////////////////////
- // Name: Validation Functions in JavaScript
- // Project: Levnß-Auta
- // Author: P.Filipec
- // Create: 19.6.2000
- // Version: 1.3.0
- // Functions:
- // IsNumber(obj, name, IntegerOnly, MinLength)
- // IsNoEmpty(obj, name, MinLength)
- // NoValue(obj, name, val)
- // IsEmail(obj, name)
- // IsChecked(obj, msg)
- // LessThan(obj1, obj2, name1, name2)
- // IsDate(obj, name)
- // IsEqual(obj1, obj2, name1, name2)
- // HasLongWord(StringToTest)
- // CompareDate(strDate1, strDate2, intDiffDay)
- // IsPhone(obj, name, blnEmpty)
- // IsRC(obj, name, blnEmpty)
- // IsICO(obj, name, blnEmpty)
- // IsDIC(obj, name, blnEmpty)
-
- // trimAll(str)
- ////////////////////////////////////////////////////////////////////
-
- //Global test for support Regular Expressions
- var g_RegExpSupported = 0;
- if(window.RegExp)
- {
- var tempStr = "a";
- var tempReg = new RegExp(tempStr);
- if(tempReg.test(tempStr))
- g_RegExpSupported = 1;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsNumber
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // ItegerOnly -> true | false
- // [MinLength] -> [integer]
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsNumber(obj, name, IntegerOnly, MinLength)
- {
- if(isNaN(obj.value))
- {
- if(name)
- alert('Vlo₧en² ·daj v poli ' + name + ' nenφ ' + (IntegerOnly ? "celΘ " : "") + 'Φφslo!\nPovoleny jsou pouze ΦφselnΘ znaky [0 - 9]' + (!IntegerOnly ? ' a desetinß teΦka [.]' : ''));
- obj.focus();
- return false;
- }
- if(obj.value.length < MinLength)
- {
- if(name)
- alert('Vlo₧te minimßln∞ ' + MinLength + ' cifernΘ ' + (IntegerOnly ? "celΘ " : "") + 'Φφslo do pole ' + name + ' !');
- obj.focus();
- return false
- }
- if(obj.value != parseInt(obj.value) && IntegerOnly == true)
- {
- if(name)
- alert('Vlo₧en² ·daj v poli' + name + 'nenφ celΘ Φφslo!');
- obj.focus();
- return false;
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsNoEmpty
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // [MinLength] -> [integer]
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsNoEmpty(obj, name, MinLength)
- {
- var c;
- var str = "";
-
- for(var i = 0; i < obj.value.length; i++)
- {
- c = obj.value.charAt(i);
- if(c != ' ')
- str += c;
- }
- if(str.length == 0)
- {
- if(name)
- {
- alert('Vlo₧te po₧adovanou hodnotu do pole ' + name + ' !');
- obj.focus();
- }
- return false;
- }
- if(str.length < MinLength)
- {
- if(name)
- {
- alert('┌daj v poli ' + name + ' musφ mφt minimßln∞ ' + MinLength + ' znak∙!');
- obj.focus();
- }
- return false
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: NoValue
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // val -> disable value
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function NoValue(obj, name, val)
- {
- var value;
- if((obj.type == "select-one") || (obj.type == "select-multiple"))
- {
- value = "";
- for(var i = 0; i < obj.options.length; i++)
- {
- if(obj.options[i].selected)
- value += obj.options[i].value + "";
- }
- }
- else
- {
- value = obj.value + "";
- }
-
- if(value == val.toString())
- {
- if(name)
- {
- alert('Vyberte po₧adovanou hodnotu z pole ' + name + ' !');
- obj.focus();
- }
- return false;
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsEmail
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsEmail(obj, name)
- {
- var msg = 'Zadejte e-mailovou adresu do pole ' + name + ' !';
- var str = obj.value;
-
- if(!g_RegExpSupported)
- {
- if(!(str.indexOf(".") > 2) && (str.indexOf("@") > 0))
- {
- alert(msg);
- obj.focus();
- return false;
- }
- }
- else
- {
- var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
- var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,5}|[0-9]{1,3})(\\]?)$");
- if(!(!r1.test(str) && r2.test(str)))
- {
- alert(msg);
- obj.focus();
- return false;
- }
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsChecked
- // Descript:
- // Input: obj -> form control
- // msg -> alert message
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsChecked(obj, msg)
- {
- var len;
- var check = false;
-
- if(obj)
- {
- len = obj.length;
- //If only one checkbox
- if(len == null)
- {
- len = 0;
- if(obj.checked)
- check = true;
- }
- for(var i = 0; i < len; i++)
- {
- if(obj[i].checked)
- check = true;
- }
- if(check != true)
- {
- if(msg)
- alert(msg);
- }
- }
- return check;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: LessThan()
- // Descript:
- // Input: obj1 -> first form control
- // obj2 -> second form control
- // name1 -> name of first form control
- // name2 -> name of second form control
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function LessThan(obj1, obj2, name1, name2)
- {
- // (x * 1) for implicit conversion as number (in NN)
- var min = obj1.value * 1;
- var max = obj2.value * 1;
-
- if(min <= max)
- return true;
- else
- {
- alert(name2 + " musφ b²t v∞tÜφ ne₧ " + name1 + " !");
- obj2.focus();
- return false;
- }
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsEqual()
- // Descript:
- // Input: obj1 -> first form control
- // obj2 -> second form control
- // name1 -> name of first form control
- // name2 -> name of second form control
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsEqual(obj1, obj2, name1, name2)
- {
-
- if(obj1.value == obj2.value)
- return true;
- else
- {
- alert(name1 + " musφ b²t shodnΘ s " + name2 + " !");
- obj1.value='';
- obj2.value='';
- obj1.focus();
- return false;
- }
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsDate
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // datastyle -> "EU" | "US"
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsDate(obj, name, datastyle)
- {
- if(CheckDate(obj, datastyle) == false)
- {
- if(name)
- alert('┌daj v poli ' + name + 'nenφ platnΘ datum!');
- obj.focus();
- return false;
- }
- else
- {
- return true;
- }
- }
-
- function CheckDate(objName, strDatestyle)
- {
- var strDate;
- var strDateArray;
- var strDay;
- var strMonth;
- var strYear;
- var intday;
- var intMonth;
- var intYear;
- var booFound = false;
- var datefield = objName;
- var strSeparatorArray = new Array("-","/",".");
- var intElementNr;
- var err = 0;
- var strMonthArray = new Array(12);
- strMonthArray[0] = 1;
- strMonthArray[1] = 2;
- strMonthArray[2] = 3;
- strMonthArray[3] = 4;
- strMonthArray[4] = 5;
- strMonthArray[5] = 6;
- strMonthArray[6] = 7;
- strMonthArray[7] = 8;
- strMonthArray[8] = 9;
- strMonthArray[9] = 10;
- strMonthArray[10] = 11;
- strMonthArray[11] = 12;
- strDate = datefield.value;
-
- if(strDatestyle == "")
- {
- strDatestyle = "EU";
- }
-
- if(strDate.length < 1)
- {
- return false;
- }
- for(intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++)
- {
- if(strDate.indexOf(strSeparatorArray[intElementNr]) != -1)
- {
- strDateArray = strDate.split(strSeparatorArray[intElementNr]);
- if(strDateArray.length != 3)
- {
- err = 1;
- return false;
- }
- else
- {
- strDay = strDateArray[0];
- strMonth = strDateArray[1];
- strYear = strDateArray[2];
- }
- booFound = true;
- }
- }
- if(booFound == false)
- {
- if(strDate.length > 5)
- {
- strDay = strDate.substr(0, 2);
- strMonth = strDate.substr(2, 2);
- strYear = strDate.substr(4);
- }
- }
- if(strYear.length == 2)
- {
- strYear = '20' + strYear;
- }
-
- // US style
- if(strDatestyle == "US")
- {
- strTemp = strDay;
- strDay = strMonth;
- strMonth = strTemp;
- }
- intday = parseInt(strDay, 10);
- if(isNaN(intday))
- {
- err = 2;
- return false;
- }
- intMonth = parseInt(strMonth, 10);
- if(isNaN(intMonth))
- {
- for(i = 0; i < 12; i++)
- {
- //if(strMonth.toUpperCase() == strMonthArray[i].toUpperCase())
- if(strMonth.toUpperCase() == strMonthArray[i])
- {
- intMonth = i + 1;
- strMonth = strMonthArray[i];
- i = 12;
- }
- }
- if(isNaN(intMonth))
- {
- err = 3;
- return false;
- }
- }
- intYear = parseInt(strYear, 10);
- if(isNaN(intYear))
- {
- err = 4;
- return false;
- }
- if(intYear < 1900 || intYear > 2078)
- {
- err = 4;
- return false;
- }
- if(intMonth > 12 || intMonth < 1)
- {
- err = 5;
- return false;
- }
- if((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 ||
- intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1))
- {
- err = 6;
- return false;
- }
- if((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) &&
- (intday > 30 || intday < 1))
- {
- err = 7;
- return false;
- }
- if(intMonth == 2)
- {
- if(intday < 1)
- {
- err = 8;
- return false;
- }
- if(LeapYear(intYear) == true)
- {
- if(intday > 29)
- {
- err = 9;
- return false;
- }
- }
- else
- {
- if(intday > 28)
- {
- err = 10;
- return false;
- }
- }
- }
- if(strDatestyle == "US")
- {
- datefield.value = strMonthArray[intMonth - 1] + "/" + intday + "/" + strYear;
- }
- else
- {
- datefield.value = intday + "." + strMonthArray[intMonth - 1] + "." + strYear;
- }
- return true;
- }
-
- function LeapYear(intYear)
- {
- if(intYear % 100 == 0)
- {
- if(intYear % 400 == 0) { return true; }
- }
- else
- {
- if((intYear % 4) == 0) { return true; }
- }
- return false;
- }
-
- //////////////////////////////////////////////////////////////////////////////////
- function HasLongWord(StringToTest)
- {
- var arrText,testtext
-
- testtext=StringToTest.replace("."," ");
- testtext=testtext.replace("\n"," ");
- testtext=testtext.replace(","," ");
- testtext=testtext.replace("!"," ");
- testtext=testtext.replace("?"," ");
- testtext=testtext.replace(":"," ");
-
- arrText=testtext.split(" ");
- for (var i = 0; i < arrText.length; i++)
- {
- if (arrText[i].length > 40) return true;
- }
- return false;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: CompareDate
- // Descript:
- // Input: strDate1 -> dateValue1 format (dd.mm.yyyy)
- // strDate2 -> dateValue1 format (dd.mm.yyyy)
- // [intDiffDay] -> integer differce(Days) value
- // Output: -1 | 0 | 1
- ////////////////////////////////////////////////////////////////////
-
- function CompareDate(strDate1, strDate2, intDiffDay) // format (dd.mm.yyyy)
- {
- //var today = new Date(); // dnes
- var date1 = new Date(); // porovnavane datum 1
- var date2 = new Date(); // porovnavane datum 2
- var subtract = 0;
- var diff = 0;
-
- // parsovani vstupnich hodnot (dd.mm.yyyy)
- var strDateArray1 = strDate1.split(".");
- var strDateArray2 = strDate2.split(".");
-
- date1.setYear(strDateArray1[2]);
- date1.setMonth((strDateArray1[1] - 1));
- date1.setDate(strDateArray1[0]);
-
- date2.setYear(strDateArray2[2]);
- date2.setMonth((strDateArray2[1] - 1));
- date2.setDate(strDateArray2[0]);
-
- subtract = date1.getTime() - date2.getTime();
-
- if(intDiffDay)
- {
- diff = Math.abs(subtract) / (1000 * 60 * 60 * 24);
- if(diff > intDiffDay) subtract = 1;
- if(diff < intDiffDay) subtract = -1;
- if(diff == intDiffDay) subtract = 0;
- }
- else
- {
- if(subtract > 0) subtract = 1;
- if(subtract < 0) subtract = -1;
- }
- //alert(subtract);
-
- return subtract;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: IsPhone
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsPhone(obj, name, blnEmpty)
- {
- var msg = 'Zadejte vaÜ '+ name +' ve tvaru: \'+042-0656/123 456\'';
- var str = obj.value;
-
- if (str.length == 0)
- if (!blnEmpty) {
- alert(msg);
- obj.focus();
- return false;
- }
- else
- return true;
-
- if(!g_RegExpSupported)
- {
- var permitChar= "0123456789 /+"
- for (var i= 0; i < str.length; i++)
- {
- if (permitChar.indexOf(str.substr(i,1)) < 0)
- {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- return false;
- }
- }
- }
- else
- {
- var r = new RegExp("^[\+]?[0-9/ -]{5,}$");
- if(!r.test(str))
- {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- return false;
- }
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsRC
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // blnEmpty -> nepovinnΘ vypln∞nφ
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsRC(obj, name, blnEmpty)
- {
- var strRC= obj.value;
- var msg = 'Zadejte vaÜe rodnΘ Φφslo ve tvaru: \'5455510741\'';
- var permitChar= "0123456789";
-
- if (strRC.length == 0)
- if (!blnEmpty) {
- if ('' != name) {
- alert(msg);
- obj.focus();
- }
- return false;
- }
- else
- return true;
-
- if(!g_RegExpSupported) {
- if ((trimAll(strRC).length < 9) || (trimAll(strRC).length > 10)) {
- if ('' != name) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- }
- return false;
- }
- for (var i= 0; i < strRC.length; i++)
- if (permitChar.indexOf(strRC.substr(i,1)) < 0) {
- if ('' != name) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- }
- return false;
- }
- }
- else {
- var r = new RegExp("^[0-9]{9,10}$");
- if(!r.test(strRC)) {
- if ('' != name) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- }
- return false;
- }
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsICO
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // blnEmpty -> nepovinnΘ vypln∞nφ
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsICO(obj, name, blnEmpty)
- {
- var strICO= obj.value;
- var msg = 'Zadejte vaÜe I╚O ve tvaru: \'12345678\'';
- var permitChar= "0123456789";
-
- if (strICO.length == 0)
- if (!blnEmpty) {
- if ('' != name) {
- alert(msg);
- obj.focus();
- }
- return false;
- }
- else
- return true;
-
- if (!g_RegExpSupported) {
- if (isNaN(strICO) && (trimAll(strICO).length != 8)) {
- if ('' != name) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- }
- return false;
- }
- }
- else {
- var r = new RegExp("^[0-9]{8}$");
- if(!r.test(strICO)) {
- if ('' != name) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- }
- return false;
- }
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- // Function: IsDIC
- // Descript:
- // Input: obj -> form control
- // name -> name of this control
- // blnEmpty -> nepovinnΘ vypln∞nφ
- // Output: true | false
- ////////////////////////////////////////////////////////////////////
- function IsDIC(obj, name, blnEmpty)
- {
- var strDIC= obj.value;
- var msg = 'Zadejte vaÜe DIC ve tvaru: \'123-1234567890\'';
- var permitChar= "0123456789-";
-
- if (strDIC.length == 0)
- if (!blnEmpty) {
- alert(msg);
- obj.focus();
- return false;
- }
- else
- return true;
-
- if (!g_RegExpSupported) {
- if ((trimAll(strDIC).length < 12) || (trimAll(strDIC).length > 14)) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- return false;
- }
- }
- else {
- var r = new RegExp("^[0-9]{3}-[0-9]{8,10}$");
- var r1 = new RegExp("^[0-9]{8,10}-[0-9]{3}$");
- if((!r.test(strDIC)) && (!r1.test(strDIC))) {
- alert(msg);
- if (blnEmpty) obj.value= '';
- obj.focus();
- return false;
- }
- }
- return true;
- }
-
- ////////////////////////////////////////////////////////////////////
- function trimAll(str)
- {
- var retStr= '';
- if (str.length > 0)
- for (var i= 0; i < str.length; i++)
- if (str.substr(i,1) != ' ')
- retStr += str.substr(i,1);
- return retStr;
- }
-