/*********************************************************************************
* function: isbetween
* parameters: val as any value
* lo as lower limit to check
* hi as higher limit to check
* calls: nothing
* returns: true if val is between lo and hi both inclusive, otherwise false.
**********************************************************************************/
function isbetween (val, lo, hi) {
if ((val < lo) || (val > hi)) { return(false); }
else { return(true); }
}
/*********************************************************************************
* function: isdate checks a valid date
* parameters: thestr as string
* calls: isbetween, isint
* returns: true if thestr is a valid date otherwise false.
**********************************************************************************/
function isdate (thestr) {
var the1st = thestr.indexof(-);
var the2nd = thestr.lastindexof(-);
if (the1st == the2nd) { return(false); }
else {
var y = thestr.substring(0,the1st);
var m = thestr.substring(the1st+1,the2nd);
var d = thestr.substring(the2nd+1,thestr.length);
var maxdays = 31;
if (isint(m)==false || isint(d)==false || isint(y)==false) {
return(false); }
else if (y.length < 4) { return(false); }
else if (!isbetween (m, 1, 12)) { return(false); }
else if (m==4 || m==6 || m==9 || m==11) maxdays = 30;
else if (m==2) {
if (y % 4 > 0) maxdays = 28;
else if (y % 100 == 0 && y % 400 > 0) maxdays = 28;
else maxdays = 29;
}
if (isbetween(d, 1, maxdays) == false) { return(false); }
else { return(true); }
}
}
/*********************************************************************************
* function: iseudate checks a valid date in british format
* parameters: thestr as string
* calls: isbetween, isint
* returns: true if thestr is a valid date otherwise false.
**********************************************************************************/
function iseudate (thestr) {
if (isbetween(thestr.length, 8, 10) == false) { return(false); }
else {
var the1st = thestr.indexof(/);
var the2nd = thestr.lastindexof(/);
if (the1st == the2nd) { return(false); }
else {
var m = thestr.substring(the1st+1,the2nd);
var d = thestr.substring(0,the1st);
var y = thestr.substring(the2nd+1,thestr.length);
var maxdays = 31;
if (isint(m)==false || isint(d)==false || isint(y)==false) {
return(false); }
else if (y.length < 4) { return(false); }
else if (isbetween (m, 1, 12) == false) { return(false); }
else if (m==4 || m==6 || m==9 || m==11) maxdays = 30;
else if (m==2) {
if (y % 4 > 0) maxdays = 28;
else if (y % 100 == 0 && y % 400 > 0) maxdays = 28;
else maxdays = 29;
}
if (isbetween(d, 1, maxdays) == false) { return(false); }
else { return(true); }
}
}
}
/********************************************************************************
* function: compare date! which is the latest!
* parameters: lessdate,moredate as string
* calls: isdate,isbetween
* returns: true if lessdate<moredate
*********************************************************************************/
function iscomdate (lessdate , moredate)
{
if (!isdate(lessdate)) { return(false);}
if (!isdate(moredate)) { return(false);}
var less1st = lessdate.indexof(-);
var less2nd = lessdate.lastindexof(-);
var more1st = moredate.indexof(-);
var more2nd = moredate.lastindexof(-);
var lessy = lessdate.substring(0,less1st);
var lessm = lessdate.substring(less1st+1,less2nd);
var lessd = lessdate.substring(less2nd+1,lessdate.length);
var morey = moredate.substring(0,more1st);
var morem = moredate.substring(more1st+1,more2nd);
var mored = moredate.substring(more2nd+1,moredate.length);
var date1 = new date(lessy,lessm,lessd);
var date2 = new date(morey,morem,mored);
if (date1>date2) { return(false);}
return(true);
}
/*********************************************************************************
* function isempty checks if the parameter is empty or null
* parameter str as string
**********************************************************************************/
function isempty (str) {
if ((str==null)||(str.length==0)) return true;
else return(false);
}
/*********************************************************************************
* function: isint
* parameter: thestr as string
* returns: true if the passed parameter is an integer, otherwise false
* calls: isdigit
**********************************************************************************/
function isint (thestr) {
var flag = true;
if (isempty(thestr)) { flag=false; }
else
{ for (var i=0; i<thestr.length; i++) {
if (isdigit(thestr.substring(i,i+1)) == false) {
flag = false; break;
}
}
}
return(flag);
}
/*********************************************************************************
* function: isreal
* parameter: hestr as string
declen as integer (how many digits after period)
* returns: true if thestr is a float, otherwise false
* calls: isint
**********************************************************************************/
function isreal (thestr, declen) {
var dot1st = thestr.indexof(.);
var dot2nd = thestr.lastindexof(.);
var ok = true;
if (isempty(thestr)) return false;
if (dot1st == -1) {
if (!isint(thestr)) return(false);
else return(true);
}
else if (dot1st != dot2nd) return (false);
else if (dot1st==0) return (false);
else {
var intpart = thestr.substring(0, dot1st);
var decpart = thestr.substring(dot2nd+1);
if (decpart.length > declen) return(false);
else if (!isint(intpart) || !isint(decpart)) return (false);
else if (isempty(decpart)) return (false);
else return(true);
}
}
/*********************************************************************************
* function: isemail
* parameter: string (email address)
* returns: true if the string is a valid email address
* false if the passed string is not a valid email address
* email format: anyname@emailserver e.g; webmaster@hotmail.com
* @ sign can appear only once in the email address.
*********************************************************************************/
function isemail (thestr) {
var atindex = thestr.indexof(@);
var dotindex = thestr.indexof(., atindex);
var flag = true;
thesub = thestr.substring(0, dotindex+1)
if ((atindex < 1)||(atindex != thestr.lastindexof(@))||(dotindex < atindex + 2)||(thestr.length <= thesub.length))
{ return(false); }
else { return(true); }
}
/*********************************************************************************
* function: newwindow
* parameters: doc -> document to open in the new window
hite -> height of the new window
wide -> width of the new window
bars -> 1-scroll bars = yes 0-scroll bars = no
resize -> 1-resizable = yes 0-resizable = no
* calls: none
* returns: new window instance
**********************************************************************************/
function newwindow (doc, hite, wide, bars, resize) {
var winnew="_blank";
var opt="toolbar=0,location=0,directories=0,status=0,menubar=0,";
opt+=("scrollbars="+bars+",");
opt+=("resizable="+resize+",");
opt+=("width="+wide+",");
opt+=("height="+hite);
winhandle=window.open(doc,winnew,opt);
return;
}
/*********************************************************************************
* function: decimalformat
* parameters: paramvalue -> field value
* calls: none
* returns: formated string
**********************************************************************************/
function decimalformat (paramvalue) {
var intpart = parseint(paramvalue);
var decpart =parsefloat(paramvalue) – intpart;
str = "";
if ((decpart == 0) || (decpart == null)) str += (intpart + ".00");
else str += (intpart + decpart);
return (str);
}
