/** * Checks for valid date * @param string dt date to check * @return boolean */ function ValidDate(dt) { var re = /(\d+)\/(\d+)\/(\d+)/i; f = dt.match(re); // f[0] is the initial string if ((!f) || (f.length != 4)) return false; if (f[0] != dt) return false; var dd = f[1]; var mm = f[2] - 1; var yy = f[3]; if (yy < 1900) return false; var r = new Date(yy, mm, dd, 0, 0, 0); if ((r.getFullYear() != yy) || (r.getMonth() != mm) || (r.getDate() != dd)) return false; return true; } /** * Checks for valid date and time * @param string dt datetime to check * @return boolean */ function ValidDatetime(dt) { var re = /(\d+)\/(\d+)\/(\d+) (\d+):(\d+)/i; f = dt.match(re); // f[0] is the initial string if ((!f) || (f.length != 6)) return false; if (f[0] != dt){ //try adding zero seconds in end of string and test again if( (f[0] + ':00') != dt){ return false; //if still differs return } } var dd = f[1]; var mm = f[2] - 1; var yy = f[3]; var hh = f[4]; var mi = f[5]; if (yy < 1900) return false; var r = new Date(yy, mm, dd, hh, mi, 0); if ((r.getFullYear() != yy) || (r.getMonth() != mm) || (r.getDate() != dd) || (r.getHours() != hh) || (r.getMinutes() != mi)) return false; return true; } /** * If valid date, returns javascript date object * @param string dt datetime to check in user format (e.g. dd/mm/yyyy) * @return javascript date object */ function GetJsDate(dt) { if (!ValidDate(dt)) return false; var re = /(\d+)\/(\d+)\/(\d+)/i; f = dt.match(re); var dd = f[1]; var mm = f[2] - 1; var yy = f[3]; var d = new Date(); d.setMinutes(15, 0, 0); d.setDate(dd); d.setMonth(mm); d.setFullYear(yy); return d; } /** * Checks for valid integer * @param string num number to check * @return boolean */ function ValidInt(num) { var length = num.length; var ch; if (length == 0) return false; for (var i = 0; i < length; i++) { ch = num.substring(i, i + 1); if (ch < "0" || ch > "9") return false; } return true; } /** * Checks for valid real (also converts , -> .) * @param string num_el element with number to check * @return boolean */ function ValidReal(num_el) { var ch; var decimal = 0; var value = num_el.value.replace(/,/, "."); var length = value.length; if (length == 0) return false; for (var i = 0; i < length; i++) { ch = value.substring(i, i + 1); if ((ch < "0" || ch > "9") && (ch != ".")) return false; if (ch == ".") { decimal++; } if (decimal == 2) return false; } num_el.value = value; return true; } /** * Checks for valid textarea * @param string * @return boolean */ function ValidTextarea(text) { return true; } /** * Trims a string * @param string s the string to trim * @return trimmed string */ function trim(s) { while (s.substring(0, 1) == ' ') s = s.substring(1, s.length); while (s.substring(s.length - 1, s.length) == ' ') s = s.substring(0, s.length - 1); return s; } /** * Grows textarea when height is reached. To use add * onkeyup="GrowTextarea(this);" onfocus="GrowTextarea(this);" * to the