function validate(){ this.formName = ''; this.i = 0; this.fieldN = new Array(); // Field name this.fieldV = new Array(); // Field value this.fieldT = new Array(); // Field type (text, editor, checkbox, radio, select, mselect, date) this.fieldI = new Array(); // Field Id this.fieldC = new Array(); // Check for equal field this.fieldEQ = new Array(); // Check for equal supplied string match this.fieldNM = new Array(); // if 1 Check for field is Numeric this.fieldGT = new Array(); // Check for Greater than supplied string (works for field type text and date only) this.fieldLT = new Array(); // Check for Less than supplied string (works for field type text and date only) this.fieldGE = new Array(); // Check for Grter thn o equal to supplied str(works for field type text & date only) this.fieldLE = new Array(); // Check for Less than o equal to supplied string(works for field type text & date only) this.fieldBT = new Array(); // Check for between 2 values (works for field type text only) this.checkEmpty = checkEmpty; this.checkDate = checkDate; this.checkEmail = checkEmail; this.checkURL = checkURL; } function checkEmpty(){ var err = ""; var frmObj = document.forms[this.formName]; for(var i=0; i= 0) || (this.fieldN[i].indexOf("Email") >= 0)){ if(!this.checkEmail()) { err += this.fieldV[i] + " (Invalid Email Id)\n"; } }else if(this.fieldN[i].indexOf("url") >= 0){ if(!this.checkURL()) { err += this.fieldV[i] + " (Invalid URL)\n"; } }else if((this.fieldN[i].indexOf("website") >= 0) || (this.fieldN[i].indexOf("WebSite") >= 0)) { if(!this.checkURL()) { err += this.fieldV[i] + " (Invalid URL)\n"; } }else if(this.fieldEQ[i]) { if(valueInField != this.fieldEQ[i]) { err += this.fieldV[i] + " (Invalid entry)\n"; } }else if(this.fieldLT[i]) { if(valueInField >= this.fieldLT[i]) { err += this.fieldV[i] + " (Invalid entry)\n"; } }else if(this.fieldGT[i]) { if(valueInField <= this.fieldGT[i]) { err += this.fieldV[i] + " (Value entered needs to be more than "+ this.fieldGT[i] +")\n"; } }else if(this.fieldLE[i]) { if(valueInField > this.fieldLE[i]) { err += this.fieldV[i] + " (Invalid entry)\n"; } }else if(this.fieldGE[i]) { if(valueInField < this.fieldGE[i]) { err += this.fieldV[i] + " (Invalid entry)\n"; } }else if(this.fieldBT[i]) { var btSplit = new Array(); btSplit = this.fieldBT[i].split('|'); if(btSplit[0] > btSplit[1]) { var tmpSplit = btSplit[0]; btSplit[0] = btSplit[1]; btSplit[1] = tmpSplit; } if((valueInField >= btSplit[0]) && (valueInField <= btSplit[1])) { err += this.fieldV[i] + " (Invalid entry)\n"; } } } if(err != "") { var errShow = "Following fields are empty or not entered correctly\n\n"; errShow += err; alert(errShow); return false; } return true; } function checkDate(){ var fieldVal = document.forms[this.formName].elements[this.fieldN[this.i]].value; if(!fieldVal || fieldVal==' '){ return false; } var dateString = formatDate(fieldVal); var dateTimeArr = dateString.split(' '); var dateV = dateTimeArr[0]; var timeV = dateTimeArr[1]; var dateArr = dateV.split('-'); var yy = dateArr[0]; var mm = dateArr[1]; var dd = dateArr[2]; var hour = '00'; var min = '00'; var sec = '00'; if(timeV) { var timeArr = timeV.split(':'); hour = timeArr[0]; min = timeArr[1]; sec = timeArr[2]; } var checkLeep = yy%4; if((checkLeep > 0) && (mm == 2) && (dd > 28)) { return false; } if((checkLeep == 0) && (mm == 2) && (dd > 29)) { return false; } if((dd > 30) && ( (mm == 4) || (mm == 6) || (mm == 9) || (mm == 11))) { return false; } if(isNaN(dd) || isNaN(mm) || isNaN(yy)) { return false; } return true; } function checkEmail(){ var fieldValue = document.forms[this.formName].elements[this.fieldN[this.i]].value; var chkAt = fieldValue.indexOf("@"); var chkDot= fieldValue.indexOf("."); var chkHack= fieldValue.indexOf("@."); var chkHackA= fieldValue.indexOf(".@"); if((chkAt >= 0) && (chkDot >= 0) && (chkHack == -1) && (chkHackA == -1) ) { return true; } return false; } function checkURL(){ var fieldValue = document.forms[this.formName].elements[this.fieldN[this.i]].value; if(fieldValue.length <= 8) { return false; } if((fieldValue.substr(0,7) == "http://") || (fieldValue.substr(0,8) == "https://")) { return true; } return false; } function formatDate(dateString, patern){ var patern = ((patern == '') || !patern) ? 'yyyy-mm-dd HH:MM:SS' : patern; check_time_stamp = dateString.indexOf('-'); if(check_time_stamp == -1) { if(dateString.indexOf('/') > 0){ // dd/mm/yyyy HH:MM:SS var dd = dateString.substr(0,2); var mm = dateString.substr(3,2); var yy = dateString.substr(6,4); var hour = dateString.substr(11,2); var min = dateString.substr(14,2); var sec = dateString.substr(17,2); }else{ var yy = dateString.substr(0,4); var mm = dateString.substr(4,2); var dd = dateString.substr(6,2); var hour = dateString.substr(8,2); var min = dateString.substr(10,2); var sec = dateString.substr(12,2); } }else{ var dateTimeArr = dateString.split(' '); var dateV = dateTimeArr[0]; var timeV = dateTimeArr[1]; var dateArr = dateV.split('-'); var yy = dateArr[0]; var mm = dateArr[1]; var dd = dateArr[2]; if(timeV) { var timeArr = timeV.split(':'); var hour = timeArr[0]; var min = timeArr[1]; var sec = timeArr[2]; } } hour = (hour == '') ? '00' : hour; min = (min == '') ? '00' : min; sec = (sec == '') ? '00' : sec; patern = patern.replace(/yyyy/g, yy); patern = patern.replace(/mm/g, mm); patern = patern.replace(/dd/g, dd); patern = patern.replace(/HH/g, hour); patern = patern.replace(/MM/g, min); patern = patern.replace(/SS/g, sec); return patern; }