/* * Notes: * The remarks are hidden from web. If you add new remark, please hide it from Web Browser. * The reason is to make this JavaScript File (*.js) load faster. */ /* * Description * -- Contains functions needed to validate date format in HTML * -- Contains functions needed to validate time format in HTML * -- Contains functions needed to perform New IC formatting and validation. * -- Contains functions needed to perform common validation. * -- Contains functions needed to perform validation visual indicator. * Author * SNT Lotus Notes Development Team, 2002 * First created at 2002, PKY. * Function Declaration: * > Date Related Validation * function isValidDate( String strDate ) : Boolean * function isLeapYear( Int intYear) : Boolean * function splitDateStringToArray( String strDate ) : String[3] * function convertMonthToMMM( String pMonth ) : String * function convertDate( String pDate, String pFormat ) : String * function dateCompare( String date1, String date2 ) : Int * function isDateBigger( String date1, String date2 ) : Boolean * function isDateSmaller( String date1, String date2 ) : Boolean * function isDateSmallerEqual( String date1, String date2 ) : Boolean * function isDateSame( String date1, String date2 ) : Boolean * function getTodayDate() : Date * function getCurrentYear() : Int * function getCurrentMonth() : Int * function getCurrentDay() : Int * > Time Related Validation * function isValidTime( String strTime ) : Boolean * function timeCompare( time1, time2 ) : Boolean * function isTimeSmaller( time1, time2 ) : Boolean * function getHour( pTime ) : Boolean/String * function getMinute( pTime ) : Boolean/String * function getAMPM( pTime ) : Boolean/String * > New IC Related Validation * function splitNewICToArray( String txtNewIC ) : String[3] * function isValidNewIC( String txtNewIC ) : Boolean * function formatNewIC( String txtNewIC ) : String * function getDobFromNewIC( String txtNewIC, String txtSeperator ) : String in date format * function getAgeFromNewIC( String txtNewIC, String txtSeperator ) : Integer * function getDobDayFromNewIC( String txtNewIC, String txtSeperator ) : Integer * function getDobMonthFromNewIC( String txtNewIC, String txtSeperator ) : Integer * function getDobYearFromNewIC( String txtNewIC, String txtSeperator, String txtDateFormat ) : Integer * function getJantinaFromNewIC( String txtNewIC ) : Lelaki/Perempuan * > Email Address Related Validation * function isValidEmail( String emailStr ) : Boolean * > Visual Validation Indicator * function setAsErrorField( String strFieldName ) : void * function setAsEmptyField( String strFieldName ) : void * function setAsNormalField( String strFieldName ) : void * function setAsDisabledField( String strFieldName ) : void * function checkComboBox( strFieldName ) : void * function enableField( strFieldName ) : void * function toggleEnableDisableField( strFieldName ) : void * function disableField( strFieldName ) : void * > Others/Not Categorized * function getAge( String strDOB, String strDate ) : String * > Common Messages * function getValidationMsgHeader1() : void * function getValidationMsgHeader2() : void * function getValidationMsgTrailerTitle() : void * function getValidationMsgTrailer1() : void * function getValidationMsgTrailer2() : void * function getConfirmSaveMsg() : void * Version * Version 1.11.0 * Last Modified * 25/03/2005 AM */ //==================== Date Time Related Validation======================================================= /* * @Usage : Check if the date value if correct. * @Return : Boolean. True if date is valid and vice versa. * @Param : strDate : The date string to be validate. */ function isValidDate( strDate ){ var booError = false; var booTrue = true; //var strArrDate; var strArrDateSeparator = new Array("-","/"); // return error if field is empty if (strDate==""){ return booError } //alert( strDate ) strArrayDate = strDate.split('/'); if (strArrayDate.length == 1){ return booError; } var strArrDate = splitDateStringToArray( strDate ); var strDay = strArrDate[0]; var strMonth = strArrDate[1]; var strYear = strArrDate[2]; // check year if ( isNaN( strYear ) ){ return booError } if ( strYear.length != 4 ){ if ( strYear.length != 2 ){ return booError } }else{ if ( parseInt(strYear)<1900 || parseInt(strYear)>2100 ){ return booError } } // check month if ( strMonth.length<1 || strMonth.length>2 ){ return booError } if ( isNaN( strMonth ) ){ return booError } if ( parseInt(strMonth,10)<1 || parseInt(strMonth,10)>12 ){ return booError } // check day if ( strDay.length<1 || strMonth.length>2 ){ return booError } if ( isNaN( strDay ) ){ return booError } if ( parseInt(strDay,10)<1 || parseInt(strDay,10)>31 ){ return booError } // convert all date time value to integer value for calculation var intYear = parseInt( strYear ); var intMonth = parseInt( strMonth ); var intDay = parseInt( strDay ); // check for correct day in month if ( (intMonth==1 || intMonth==3 || intMonth==5 || intMonth==7 || intMonth==8 || intMonth==10 || intMonth==12) && (intDay>31) ){ return booError } if ( (intMonth==4 || intMonth==6 || intMonth==9 || intMonth==11) && (intDay>30) ){ return booError } if ( intMonth==2){ if ( isLeapYear(intYear) ){ if (intDay>29){ return booError } }else{ if (intDay>28){ return booError } } } // return true if everythings is right return booTrue; } /* * @Usage : Check if passed in year is a leap year * @Return : Boolean. True if is a leap year and vice versa. * @Param : intYear : [Integer] Year to check. */ function isLeapYear( intYear ){ if (intYear % 100 == 0){ if (intYear % 400 == 0) { return true; } }else{ if ((intYear % 4) == 0) { return true; } } return false; } /* * @Usage : Given a date string, split the date into a array of length 3. * @Return : Array of length 3 that consist of the splited date value. * First subsript is Day, Second subscript is Month and Third subscript is Year. * @Param : strDate : [String] The date to be splited. * @Format: dd/mm/yyyy OR dd-mm-yyyy */ function splitDateStringToArray( strDate ){ var booError = false; var booTrue = true; var strArrDate = new Array("00","00","0000"); var strArrDateTemp; var strArrDateSeparator = new Array("-","/"); // return error if field is empty if (strDate==""){ return strArrDate } // seperate the date value for ( var i=0 ; i Date.parse(vDate2)){ return 1 } if (Date.parse(vDate1) == Date.parse(vDate2)){ return 0 } } /* * @Usage : Compare for smaller date * @Return : Boolean. True if date1 smaller than date2 and vice versa * @Param : date1 : [String] Date value 1 to be compared * date2 : [String] Date value 2 to be compared */ function isDateSmaller( date1, date2 ){ if (dateCompare( date1, date2 ) == -1){ return true }else{ return false; } } /* * @Usage : Compare for smaller and equal date * @Return : Boolean. True if date1 smaller or equal than date2 and vice versa * @Param : date1 : [String] Date value 1 to be compared * date2 : [String] Date value 2 to be compared */ function isDateSmallerEqual( date1, date2 ){ if (dateCompare( date1, date2 ) == -1){ return true }else{ if (dateCompare( date1, date2 ) == 0){ return true }else{ return false; } } } /* * @Usage : Compare for bigger date * @Return : Boolean. True if date1 bigger than date2 and vice versa * @Param : date1 : [String] Date value 1 to be compared * date2 : [String] Date value 2 to be compared */ function isDateBigger( date1, date2 ){ if (dateCompare( date1, date2 ) == 1){ return true }else{ return false; } } /* * @Usage : Compare for the identical date * @Return : Boolean. True if date1 and date2 are same and vice versa * @Param : date1 : [String] Date value 1 to be compared * date2 : [String] Date value 2 to be compared */ function isDateSame( date1, date2 ){ if (dateCompare( date1, date2 ) == 0){ return true }else{ return false; } } /* * @Usage : Get Today's Date * @Return : String. Today's date in dd/mm/yyyy format. * @Param : - */ function getTodayDate(){ var todayDate = new Date(); var day = todayDate.getDate(); var month = todayDate.getMonth()+1; var year = todayDate.getYear(); if (day < 10) { day = "0" + day;} if (month < 10){ month="0"+month;} if (year < 2000) { year = year + 1900;} return day + "/" + month + "/" + year; } /* * @Usage : Get Current Year * @Return : Int. Current year. eg. 2002 * @Param : - */ function getCurrentYear(){ var todayDate = new Date(); return todayDate.getYear(); } /* * @Usage : Get Current Month * @Return : Int. Current Month. Return 1 for January ... 12 for December. * @Param : - */ function getCurrentMonth(){ var todayDate = new Date(); return todayDate.getMonth()+1; } /* * @Usage : Get Current Day * @Return : Int. Today's day number. * @Param : - */ function getCurrentDay(){ var todayDate = new Date(); return todayDate.getDate(); } //==================== Date Time Related Validation ====================================================== /* * @Usage : Compare the time that passed in * @Return : Boolean/Integer. if Time Not Valid, Return False * if time1 is smaller, return -1 * if time1 same with time2, return 0 : * if time1 bigger, return 1 . * @Param : time1 : [String] Time value 1 to be compared * time2 : [String] Time value 2 to be compared * @Format : dd/mm/yyyy hh:mm AMPM * Eg. 12/12/2004 09:00 AM */ function dateTimeCompare( dateTime1, dateTime2 ){ vArrTmp1 = dateTime1.split( " " ); vArrTmp2 = dateTime2.split( " " ); vDateToSplit1 = dateTime1; vDateToSplit2 = dateTime2; if ( vArrTmp1.length == 3 ){ vDateToSplit1=vArrTmp1[0] } if ( vArrTmp2.length == 3 ){ vDateToSplit2=vArrTmp2[0] } vArr1 = splitDateStringToArray( dateTime1 ); vArr2 = splitDateStringToArray( dateTime2 ); if ( vArr1[0]=="0000" ){ return false } if ( vArr2[0]=="0000" ){ return false } t1yyyy = parseInt( vArr1[0], 10 ); t1mm = parseInt( vArr1[1], 10 ); t1dd = parseInt( vArr1[2], 10 ); t1hh = parseInt( getHour( dateTime1 ), 10 ); t1min = parseInt( getMinute( dateTime1 ), 10 ); t2yyyy = parseInt( vArr2[0], 10 ); t2mm = parseInt( vArr2[1], 10 ); t2dd = parseInt( vArr2[2], 10 ); t2hh = parseInt( getHour( dateTime2 ), 10 ); t2min = parseInt( getMinute( dateTime2 ), 10 ); t1hh = ( getAMPM( dateTime1 )=="AM" ) ? t1hh : t1hh+12; t2hh = ( getAMPM( dateTime2 )=="AM" ) ? t2hh : t2hh+12; vTime1 = new Date( t1yyyy, t1mm, t1dd, t1hh, t1min, 0 ); vTime2 = new Date( t2yyyy, t2mm, t2dd, t2hh, t2min, 0 ); if ( vTime1 < vTime2 ){ return -1} if ( vTime1 > vTime2 ){ return 1 } if ( vTime1 == vTime2 ){ return 0 } return false; } //==================== Time Related Validation =========================================================== /* * @Usage : Check if the time value is valid in 12:00 AM format * @Return : True if the time is valid, False is the time is invalid. * @Param : strTime : [String] The time to be validated.. */ function isValidTime( strTime ){ strTime = strTime.replace(/(^\s+)|(\s+$)/g, ""); if ( strTime.value=="" ){ return false } var strTimeArray1 = strTime.split(":"); if (strTimeArray1.length != 2){ return false } var strTimeArray2 = strTimeArray1[ 1 ].split(" "); if (strTimeArray2.length != 2){ return false } var strHour = strTimeArray1[ 0 ]; var strMinit = strTimeArray2[ 0 ]; var strAMPM = strTimeArray2[ 1 ].toUpperCase(); if ( isNaN( strHour) ){ return false } if ( isNaN( strMinit) ){ return false } if ( !isNaN(strAMPM) ){ return false } if ( strHour.length<1 || strHour.length>2 ){ return false } if ( strMinit.length!=2 ){ return false } if ( strAMPM.length!=2){ return false } var intHour = parseInt( strHour, 10 ); var intMinit = parseInt( strMinit, 10 ); if ( intHour<0 || intHour>12 ){ return false } if ( intMinit<0 || intMinit>59 ){ return false } if ( !(strAMPM=="AM" || strAMPM=="PM") ){ return false } return true; } /* * @Usage : Compare the time that passed in * @Return : Boolean/Integer. if Time Not Valid, Return False * if time1 is smaller, return -1 * if time1 same with time2, return 0 : * if time1 bigger, return 1 . * @Param : time1 : [String] Time value 1 to be compared * time2 : [String] Time value 2 to be compared * @Format : hh:mm AMPM OR dd/mm/yyyy hh:mm AMPM */ function timeCompare( time1, time2 ){ if ( ! isValidTime(time1) ){ return false } if ( ! isValidTime(time2) ){ return false } t1hh = parseInt( getHour( time1 ), 10 ); t1mm = parseInt( getMinute( time1 ), 10 ); t2hh = parseInt( getHour( time2 ), 10 ); t2mm = parseInt( getMinute( time2 ), 10 ); t1hh = ( getAMPM( time1)=="AM" ) ? t1hh : t1hh+12; t2hh = ( getAMPM( time2)=="AM" ) ? t2hh : t2hh+12; vTime1 = new Date( 2000, 1, 1, t1hh, 10, t1mm, 0 ); vTime2 = new Date( 2000, 1, 1, t2hh, 10, t2mm, 0 ); if ( vTime1 < vTime2 ){ return -1} if ( vTime1 > vTime2 ){ return 1 } if ( vTime1 == vTime2 ){ return 0 } return false; } /* * @Usage : given a time, extract the HOUR part. * @Return : Boolean/String. if Time Not Valid Return False else return HOUR * @Param : pTime : [String] Time value to be extracted * @Format : hh:mm AMPM OR dd/mm/yyyy hh:mm AMPM */ function getHour( pTime ){ vArrTime = pTime.split( " " ); if ( vArrTime.length==3 ){ vTime =vArrTime[1] + " " + vArrTime[2]; }else{ vTime = pTime; } if ( ! isValidTime( vTime ) ){ return false } var1 = vTime.split( ":"); return var1[0]; } /* * @Usage : given a time, extract the MINUTE part. * @Return : Boolean/String. if Time Not Valid Return False else return MINUTE * @Param : pTime : [String] Time value to be extracted * @Format : hh:mm AMPM OR dd/mm/yyyy hh:mm AMPM */ function getMinute( pTime ){ vArrTime = pTime.split( " " ); if ( vArrTime.length==3 ){ vTime =vArrTime[1] + " " + vArrTime[2]; }else{ vTime = pTime; } if ( ! isValidTime( vTime ) ){ return false } var1 = vTime.split( ":"); var2 = var1[1].split( " " ); return var2[0]; } /* * @Usage : given a time, extract the AMPM part. * @Return : Boolean/String. if Time Not Valid Return False else return AM or PM * @Param : pTime : [String] Time value to be extracted * @Format : 99:99 AMPM */ function getAMPM( pTime ){ vArrTime = pTime.split( " " ); if ( vArrTime.length==3 ){ vTime =vArrTime[1] + " " + vArrTime[2]; }else{ vTime = pTime; } if ( ! isValidTime( vTime ) ){ return false } var1 = vTime.split( ":"); var2 = var1[1].split( " " ); return var2[1]; } /* * @Usage : Compare for smaller time * @Return : Boolean. True if time1 smaller than time2 and vice versa * @Param : time1 : [String] Time value 1 to be compared * time2 : [String] Time value 2 to be compared */ function isTimeSmaller( time1, time2 ){ if (timeCompare( time1, time2 ) == -1){ return true }else{ return false; } } //==================== New IC Related Validation ========================================================= /* * @Usage : Split the new IC passed in into a Array Of String [3]. Array[0] - First 6 digit of New IC Array[1] - Second 2 digit of New IC Array[2] - Last 4 digiti of New IC * @Return : Array of String of 3. * @Param : txtNewIC : Text. The New IC to be checked. Can be in 999999-99-9999 or 999999999999. */ function splitNewICToArray( txtNewIC ){ var arrNewIC = txtNewIC.split("-"); if(arrNewIC.length==1){ if ( txtNewIC.length ==12){ arrNewIC[ 0 ]=txtNewIC.substring(0,6); arrNewIC[ 1 ]=txtNewIC.substring(6,8); arrNewIC[ 2 ]=txtNewIC.substring(8,12); } } return arrNewIC; } /* * @Usage : Check whether the New IC that user enter is valid or not. The New IC can in 999999-99-9999 or 999999999999 format. * If is in 999999999999 format, the value will be splitted into 999999-99-9999 format for checking. * @Return : Boolean. Return True is the New IC is valid, False vice versa. * @Param : txtNewIC : Text. The New IC to be checked. Can be in 999999-99-9999 or 999999999999. */ function isValidNewIC( txtNewIC ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return false; } if ( isNaN(arrNewIC[ 0 ]) ){ return false;} if ( isNaN(arrNewIC[ 1 ]) ){ return false;} if ( isNaN(arrNewIC[ 2 ]) ){ return false;} if ( arrNewIC[0].length!=6 ){ return false; } if ( arrNewIC[1].length!=2 ){ return false; } if ( arrNewIC[2].length!=4 ){ return false; } var dd = parseInt(arrNewIC[0].substring(4,6), 10); var mm = parseInt(arrNewIC[0].substring(2,4), 10); var yy = parseInt(arrNewIC[0].substring(0,2), 10); yy = (yy==0) ? "00" : yy; var yyyy= (parseInt(yy) < 10) ? ("20"+yy) : ("19"+yy); if ( dd<=0){ return false;} if ( dd>31){ return false;} if ( mm<=0){ return false;} if ( mm>12){ return false;} if ( (mm==4 || mm==6 || mm==9 || mm==11) && dd>30 ){ return false; } if (mm==2){ if ( ! isLeapYear(yyyy) && (dd>28) ){ return false; } if ( isLeapYear(yyyy) && (dd>29) ){ return false; } } return true; } /* * @Usage : Given a New IC, format it to 999999-99-9999. * @Return : String. Return the new IC in the correct format (999999-99-9999) * If the New IC that passed in is not invalid, the passed in value is passed back unchanged. * @Param : txtNewIC : Text. The New IC to be formated. Can be in 999999-99-9999 or 999999999999. */ function formatNewIC( txtNewIC ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return txtNewIC; }else{ return arrNewIC[0] + "-" + arrNewIC[1] + "-" + arrNewIC[2]; } } /* * @Usage : Given the New IC, return the Date of Birth in DD/MM/YYYY format. * The seperator can be customized by passing in. * @Return : Date in DD/MM/YYYY format. The date seperator is customizable. * @Param : txtNewIC : Text. The New IC. * txtSeperator : Text, the seperator that should be used to seperator the date format. eg. / or - */ function getDobFromNewIC( txtNewIC, txtDobSeperator ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return ""; }else{ if ( ! isValidNewIC( txtNewIC ) ){ return ""; }else{ var dd=arrNewIC[0].substring(4,6); var mm=arrNewIC[0].substring(2,4); var yy=arrNewIC[0].substring(0,2); var yyyy= (parseInt(yy) < 10) ? ("20"+yy) : ("19"+yy); return dd + txtDobSeperator + mm + txtDobSeperator + yyyy; } } } /* * @Usage : Given the New IC, return the age of the new IC. * @Return : Integer, the age of the owner of the New IC. * @Param : txtNewIC : Text. The New IC. */ function getAgeFromNewIC( txtNewIC ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return ""; }else{ if ( ! isValidNewIC( txtNewIC ) ){ return ""; }else{ var yy=arrNewIC[0].substring(0,2); var dobYear = (parseInt(yy) < 10) ? ("20"+yy) : ("19"+yy); var currentYear = getCurrentYear(); return parseInt(currentYear)-parseInt(dobYear); } } } /* * @Usage : Given the New IC, return the DOB day in DD format. * The seperator can be customized by passing in. * @Return : DD, the day of the DOBthe date seperator is customizable. * @Param : txtNewIC : Text. The New IC. * txtSeperator : Text, the seperator that should be used to seperator the date format. eg. / or - */ function getDobDayFromNewIC( txtNewIC, txtDobSeperator ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return ""; }else{ if ( ! isValidNewIC( txtNewIC ) ){ return ""; }else{ var dd=arrNewIC[0].substring(4,6); return dd; } } } /* * @Notes : The state name are getting from Tambahan.nsf * @Usage : Given the New IC, return the state name in string. * The seperator can be customized by passing in. * @Return : DD, the day of the DOBthe date seperator is customizable. * @Param : txtNewIC : Text. The New IC. * txtSeperator : Text, the seperator that should be used to seperator the date format. eg. / or - */ function getStateNameFromNewIC( txtNewIC ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return ""; }else{ if ( ! isValidNewIC( txtNewIC ) ){ return ""; }else{ returnValue="00"; vKod=arrNewIC[ 1 ]; switch (vKod){ } return returnValue; } } } /* * @Usage : Given the New IC, return the DOB month in MM format. * The seperator can be customized by passing in. * @Return : MM, the month of the DOBthe date seperator is customizable. * @Param : txtNewIC : Text. The New IC. * txtSeperator : Text, the seperator that should be used to seperator the date format. eg. / or - */ function getDobMonthFromNewIC( txtNewIC, txtDobSeperator ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return ""; }else{ if ( ! isValidNewIC( txtNewIC ) ){ return ""; }else{ var mm=arrNewIC[0].substring(2,4); return mm; } } } /* * @Usage : Given the New IC, return the DOB year in YY or YYYY format. * The seperator can be customized by passing in. * @Return : YY or YYYY, the year of the DOBthe date seperator is customizable. * @Param : txtNewIC : Text. The New IC. * txtSeperator : Text, the seperator that should be used to seperator the date format. eg. / or - * txtYearFormat : Text, the format of the year required. Either "YY" or "YYYY" */ function getDobYearFromNewIC( txtNewIC, txtDobSeperator, txtYearFormat ){ var arrNewIC = splitNewICToArray( txtNewIC ); if (arrNewIC.length!=3){ return ""; }else{ if ( ! isValidNewIC( txtNewIC ) ){ return ""; }else{ var yy=arrNewIC[0].substring(0,2); var yyyy= (parseInt(yy) < 10) ? ("20"+yy) : ("19"+yy); return (txtYearFormat=="YY") ? yy : yyyy; } } } /* * @Usage : Given the New IC, return the gender (jantina) of the owner of the IC. * @Return : "Perempuan" or "Lelaki" * @Param : str : Text. The New IC. */ function getJantinaFromNewIC( str ){ var i = str.length - 1; var arr = str.charAt( i ); var strJantina = arr%2; if( strJantina.toString() == "0" ){ return "Perempuan"; }else if( strJantina.toString() == "1" ){ return "Lelaki"; }else{ return ""; } } //==================== Email Address Related Validation ========================================================= /* * @Usage : Given the Email address, test if the email is in valid (username@company.com) format. * @Return : Boolean, whether the email address in valid format. * @Param : emailStr : String, the email address to be verify. */ function isValidEmail( emailStr ){ if ( emailStr.indexOf('@') == -1 || emailStr.indexOf('@') != emailStr.lastIndexOf('@') || emailStr.indexOf('@') + 3 > emailStr.lastIndexOf('.') || emailStr.indexOf('@') < 2 || emailStr.indexOf(".@") > -1|| emailStr.indexOf("@.") > -1 || emailStr.indexOf('.') == 0 || emailStr.substring(emailStr.lastIndexOf('.')).length < 3 || emailStr.substring(emailStr.lastIndexOf('.')).length > 4 || emailStr.indexOf("..") > -1 ){ return false; } var numeric = "0123456789_"; var dExt = emailStr.substring(emailStr.lastIndexOf('.')+1); for(i=0; i -1) { return false; } } var invalidChar = "~`!#$%^&*() -=+|}{[];:?/><,'\""; for(i=0; i -1) { return false; } } return true; } //==================== Validation Visual Indicator ========================================================= /* * @Usage : Given the field name, set the background color to the predefined color in class ErrorField. * @Return : - * @Param : strFieldName : String, the field name. * @Remark : ErrorField is refer to the field that are error in format. */ function setAsErrorField( strFieldName ){ var field1 = eval( "document.forms[0]." + strFieldName ); if ( field1.type=="text" || field1.type=="textarea" ){ field1.className="ErrorField"; }else if (field1.type!="hidden"){ if ( field1.length ){ for ( i=0; i parseInt( strDobMonth, 10 ) ){ strMonthStatus="BIGGER"; }else if ( parseInt( strCompareMonth, 10 ) == parseInt( strDobMonth, 10 ) ){ strMonthStatus="SAME"; } var strDayStatus=""; if ( parseInt( strCompareDay, 10 ) < parseInt( strDobDay, 10 ) ){ strDayStatus="SMALLER"; }else if ( parseInt( strCompareDay, 10 ) > parseInt( strDobDay, 10 ) ){ strDayStatus="BIGGER"; }else if ( parseInt( strCompareDay, 10 ) == parseInt( strDobDay, 10 ) ){ strDayStatus="SAME"; } if ( strMonthStatus=="SMALLER" ){ strAge = parseInt( strCompareYear, 10 ) - parseInt( strDobYear, 10 ) - 1; }else if ( strMonthStatus=="BIGGER" ){ strAge = parseInt( strCompareYear, 10 ) - parseInt( strDobYear, 10 ); }else if ( strMonthStatus=="SAME" ){ if ( strDayStatus=="SMALLER" ){ strAge = parseInt( strCompareYear, 10 ) - parseInt( strDobYear, 10 ) - 1; }else if ( strDayStatus=="BIGGER" ){ strAge = parseInt( strCompareYear, 10 ) - parseInt( strDobYear, 10 ); }else{ strAge = parseInt( strCompareYear, 10 ) - parseInt( strDobYear, 10 ); strDays = "0"; } } if ( strAge<0 ){ return ""; }else{ return strAge; } } //==================== Common Messages ========================================================= /* * @Usage : used in all forms validation */ function getValidationMsgHeader1(){ return "Please complete the following information :-"; } /* * @Usage : used in all forms validation */ function getValidationMsgHeader2(){ return "\nPlease correct the following information :-"; } /* * @Usage : used in all forms validation */ function getValidationMsgTrailerTitle(){ return ""; } /* * @Usage : used in all forms validation */ function getValidationMsgTrailer1(){ return ""; } /* * @Usage : used in all forms validation */ function getValidationMsgTrailer2(){ return ""; } /* * @Usage : used in all forms validation */ function getConfirmSaveMsg(){ return "Save ?"; } function show(object) { if (document.layers && document.layers[object]) document.layers[object].visibility = 'visible'; } function hide(object) { if (document.layers && document.layers[object]) document.layers[object].visibility = 'hidden'; } function toggleDivHideShow( pDivName ){ var ns4 = (document.layers); var ie4 = (document.all && !document.getElementById); var ie5 = (document.all && document.getElementById); var ns6 = (!document.all && document.getElementById); if ( ns4 ){ vCurrentStatus = document.layers[ pDivName ].visibility == "hide" ? "HIDE" : "SHOW"; }else if ( ie4 ){ vCurrentStatus = document.all[ pDivName ].style.visibility == "hidden" ? "HIDE" : "SHOW"; }else if (ie5 || ns6){ vCurrentStatus = document.getElementById( pDivName ).style.display == "none" ? "HIDE" : "SHOW"; } //if ( document.getElementById( pDivName ).style.display == 'none' ){ if ( vCurrentStatus=="HIDE" ){ showItSimple( pDivName ); }else{ hideItSimple( pDivName ); } } function toggleDivSectionHideShow( pDivName, pImgName, pImgURLWhenDivShow, pImgURLWhenDivHide ){ var ns4 = (document.layers); var ie4 = (document.all && !document.getElementById); var ie5 = (document.all && document.getElementById); var ns6 = (!document.all && document.getElementById); vArrDivName = pDivName.split(","); vDivName = vArrDivName[0]; if ( ns4 ){ vCurrentStatus = document.layers[ vArrDivName[0] ].visibility == "hide" ? "HIDE" : "SHOW"; }else if ( ie4 ){ vCurrentStatus = document.all[ vArrDivName[0] ].style.visibility == "hidden" ? "HIDE" : "SHOW"; }else if (ie5 || ns6){ vCurrentStatus = document.getElementById( vArrDivName[0] ).style.display == "none" ? "HIDE" : "SHOW"; } if ( vCurrentStatus=="HIDE" ){ for (y=0; y-1;i--){ if (strValue.charAt(i) != ' '){ bolSpace = false; } if (bolSpace == false){ strResult = strValue.charAt(i) + strResult; } } return strResult; }