// Validate.js
// Some Routines for HTML-Form Validation
function returnSelection(radioField)
{
var selection = null;
for (i=0; i < radioField.length; i++)
{
if (radioField[i].checked)
{
selection=radioField[i].value;
return selection;
}
}
return selection;
}
// Check if Field contains something
function ContainsSomething(Field)
{
if ((Field.type == "text") || (Field.type == "textarea"))
{
if (Field.value == "")
{
return false;
}
}
else
{
if (returnSelection(Field) == null)
{
return false;
}
}
return true;
}
// Check for valid (ie containg "@", ".",
// and more than 6 characters) email-address in Field
function IsValidEmail(Field)
{
if (!ContainsSomething(Field))
{
return false;
}
if (Field.value.indexOf("@")==-1
|| Field.value.indexOf(".")==-1
|| Field.value.indexOf(" ")!=-1
|| Field.value.length<6)
{
return false;
}
else
{
return true;
}
}
// Check if Field contains a valid date of the form dd/mm/yy
function IsValidDate(Field)
{
if (!ContainsSomething(Field))
{
return false;
}
var indate=Field.value;
var sdate = indate.split("/")
var chkDate = new Date(Date.parse(indate))
var cmpDate = (chkDate.getMonth()+1)+
"/"+(chkDate.getDate())+
"/"+(chkDate.getYear())
var indate2 = (Math.abs(sdate[0]))+"/"+(
Math.abs(sdate[1]))+
"/"+(Math.abs(sdate[2]))
if (indate2 != cmpDate || cmpDate == "NaN/NaN/NaN")
{
return false
}
else
{
return true;
}
}
// Check if Field contains numeric data only
function IsNum(Field)
{
if (!ContainsSomething(Field))
{
return false;
}
theNum = parseFloat(Field.value);
if (Field.value != '' + theNum)
{
return false;
}
return true;
}
// Check if Field contains only letters
function IsOnlyLetters(Field)
{
if (!ContainsSomething(Field))
{
return false;
}
var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÜÖÄ'´"
for (i=0; i < Field.value.length; i++)
{
var CheckChar = Field.value.charAt(i);
CheckChar = CheckChar.toUpperCase();
if (Letters.indexOf(CheckChar) == -1)
{
return false;
}
}
return true;
}
// Check if Field contains only digits in range Min to Max
function IsInRange(Field, Min, Max)
{
if (IsNum(Field) == false)
{
return false;
}
if (Field.value < Min || Max < Field.value)
{
return false;
}
return true;
}
// Check if Field is not equal to strCompare
function IsNotEqual(Field, strCompare)
{
if (Field.value== strCompare)
{
return false;
}
return true;
}
function isCreditCard(st)
{
if (st.length > 19)
{
return (false);
}
sum = 0; mul = 1; l = st.length;
for (i = 0; i < l; i++)
{
digit = st.substring(l-i-1,l-i);
tproduct = parseInt(digit ,10)*mul;
if (tproduct >= 10)
{
sum += (tproduct % 10) + 1;
}
else
{
sum += tproduct;
}
if (mul == 1)
{
mul++;
}
else
{
mul--;
}
}
if ((sum % 10) == 0)
{
return (true);
}
else
{
return (false);
}
}
function IsVisa(cc)
{
if (((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4))
{
return isCreditCard(cc);
}
return false;
}
function IsMasterCard(cc)
{
firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if ((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5)))
{
return isCreditCard(cc);
}
return false;
}
function IsAmericanExpress(cc)
{
firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if ((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7)))
{
return isCreditCard(cc);
}
return false;
}
function IsValidCC(Field)
{
tempString = "";
bag = "- ";
for (i = 0; i < Field.value.length; i++)
{
var c = Field.value.charAt(i);
if (bag.indexOf(c) == -1) tempString += c;
}
cc = tempString;
if (!isCreditCard(cc))
{
return false;
}
if (!IsMasterCard(cc) && !IsVisa(cc) && !IsAmericanExpress(cc))
{
return false;
}
return true;
}