///////////////////////////////////////////////////////////////
// //
// Pass all required global variables and fields from page. //
// (eg- ) //
// Skip fields that are not required. //
// //
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// INITIALIZE GLOBAL variables. VALUES passed from page (after fields).
// o = form name.
// img_loc = path to image.
// td_error_num = number of columns to make.
// td_error_loc = td count from left where error message is shown.
// table_name = table id.
// checkbox_name = checkbox id.
// class_regular = css class when there are no errors.
// class_regular_checkbox = css class for checkboxes when normal.
// class_error_checkbox = css class for checkboxes when error.
// class_error_textf = css class for text fields when error.
// class_error_msg = css class for the error message.
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// individual ONFOCUS functions because arguments cannot be passed.
///////////////////////////////////////////////////////////////
function fname_focus_call(){
if(document.getElementById('fname').value=='(First Name)')document.getElementById('fname').value='';
document.getElementById('fname').className='formfieldon';
delRow(document.getElementById(rowindex_fname).sectionRowIndex,id_fname,'fname_error');
}
function lname_focus_call(){
if(document.getElementById('lname').value=='(Last Name)')document.getElementById('lname').value='';
document.getElementById('lname').className='formfieldon';
delRow(document.getElementById(rowindex_lname).sectionRowIndex,id_lname,'lname_error');
}
function address_focus_call(){
if(document.getElementById('address').value=='(Street Address)')document.getElementById('address').value='';
document.getElementById('address').className='formfieldon';
delRow(document.getElementById(rowindex_address).sectionRowIndex,id_address,'address_error');
}
function zip_focus_call(){
if(document.getElementById('zip').value=='(Zip)')document.getElementById('zip').value='';
document.getElementById('zip').className='formfieldon';
delRow(document.getElementById(rowindex_zip).sectionRowIndex,id_zip,'zip_error');
}
function email_focus_call(){
if(document.getElementById('email').value=='(E-mail)')document.getElementById('email').value='';
document.getElementById('email').className='formfieldon';
delRow(document.getElementById(rowindex_email).sectionRowIndex,id_email,'email_error');
}
function wphone_focus_call()
{
document.getElementById(id_w_ph_ac).className=class_regular;
document.getElementById(id_w_ph_pre).className=class_regular;
document.getElementById(id_w_ph_num).className=class_regular;
delRow(document.getElementById(rowindex_w_phone).sectionRowIndex,id_w_ph_ac,'phone_error');
delRow(document.getElementById(rowindex_w_phone).sectionRowIndex,id_w_ph_pre,'phone_error');
delRow(document.getElementById(rowindex_w_phone).sectionRowIndex,id_w_ph_num,'phone_error');
}
function bday_focus_call()
{
document.getElementById(id_b_mon).className=class_regular;
document.getElementById(id_b_day).className=class_regular;
document.getElementById(id_b_year).className=class_regular; delRow(document.getElementById(rowindex_bday).sectionRowIndex,id_b_mon,'bday_error');
delRow(document.getElementById(rowindex_bday).sectionRowIndex,id_b_day,'bday_error');
delRow(document.getElementById(rowindex_bday).sectionRowIndex,id_b_year,'bday_error');
}
function gender_focus_call()
{
if((rowindex_gender == rowindex_marital) && (window.id_marital_status!==undefined))
{
document.getElementById(id_marital_status).className=class_regular;
}
document.getElementById(id_gender).className=class_regular;
delRow(document.getElementById(rowindex_gender).sectionRowIndex,id_gender,error_row_gender);
}
function marital_focus_call()
{
if((rowindex_marital == rowindex_gender) && (window.id_gender!==undefined))
{
document.getElementById(id_gender).className=class_regular;
}
document.getElementById(id_marital_status).className=class_regular;
delRow(document.getElementById(rowindex_marital).sectionRowIndex,id_marital_status,error_row_marital);
}
function checkbox_blur_call()
{
IsItChecked(checkbox_name,'Sorry, you must agree to the terms and conditions.',id_checkbox);
}
function auth_focus_call(){
if(document.getElementById(id_AuthCode).value=='(Retype Code)')document.getElementById(id_AuthCode).value='';
document.getElementById(id_AuthCode).className='formfieldon';
delRow(document.getElementById(rowindex_auth).sectionRowIndex,id_AuthCode,'authcode_error');
}
///////////////////////////////////////////////////////////////
// checks to see if variable EXIST OR NOT. CALLS individual ONFOCUS/ ONBLUR functions if exist.
///////////////////////////////////////////////////////////////
if(window.id_fname!==undefined)
{
rowindex_fname;
id_fname;
o.fname.onfocus = fname_focus_call;
}
if(window.id_lname!==undefined)
{
rowindex_lname;
id_lname;
o.lname.onfocus = lname_focus_call;
}
if(window.id_AuthCode!=undefined){
rowindex_auth;
id_AuthCode;
o.AuthCodeBox.onfocus = auth_focus_call;
}
if(window.id_address!==undefined)
{
rowindex_address;
id_address;
o.home_address.onfocus = address_focus_call;
}
if(window.id_zip!==undefined)
{
rowindex_zip;
id_zip;
o.home_zip.onfocus = zip_focus_call;
}
if(window.id_email!==undefined)
{
rowindex_email;
id_email;
o.home_email.onfocus = email_focus_call;
}
if(window.id_w_ph_ac!==undefined)
{
rowindex_w_phone;
id_w_ph_ac;
id_w_ph_pre;
id_w_ph_num;
o.w_ph_ac.onfocus = wphone_focus_call;
o.w_ph_pre.onfocus = wphone_focus_call;
o.w_ph_num.onfocus = wphone_focus_call;
}
if(window.id_b_mon!==undefined)
{
rowindex_bday;
id_b_mon;
id_b_day;
id_b_year;
o.b_mon.onfocus = bday_focus_call;
o.b_day.onfocus = bday_focus_call;
o.b_year.onfocus = bday_focus_call;
}
if(window.id_gender!==undefined)
{
rowindex_gender;
id_gender;
o.Gender.onfocus = gender_focus_call;
}
if(window.id_marital_status!==undefined)
{
rowindex_marital;
id_marital_status;
o.marital_status.onfocus = marital_focus_call;
}
if(window.id_checkbox!==undefined)
{
id_checkbox;
o.elements[checkbox_name].onblur = checkbox_blur_call;
}
///////////////////////////////////////////////////////////////
// checks to see if variable EXISTS OR NOT. ASSIGNS DEFAULT values if no.
///////////////////////////////////////////////////////////////
if(window.td_error_loc===undefined)
{
var td_error_num=2;
var td_error_loc=1;
}
if(window.class_regular_checkbox===undefined)
{
var class_regular_checkbox=class_regular;
}
///////////////////////////////////////////////////////////////
// checks to see if PHP error EXISTS OR NOT. DISPLAYS error and STOPS SUBMIT if field passed.
///////////////////////////////////////////////////////////////
if(window.fname_error!==undefined) {
var fname_error = fname_error.toString();
insRow(document.getElementById(rowindex_fname).sectionRowIndex,'',fname_error,1,id_fname,'fname_error');
document.getElementById(id_lname).classname=class_error_textf;
var a = false;
var b = false;
} else {
var a = true;
var b = true;
}
if(window.addr_error!==undefined) {
var addr_error = addr_error.toString();
insRow(document.getElementById(rowindex_address).sectionRowIndex,'',addr_error,1,id_address,'address_error');
var c = false;
} else {
var c = true;
}
if(window.email_error!==undefined)
{
var email_error = email_error.toString();
insRow(document.getElementById(rowindex_email).sectionRowIndex,'',email_error,1,id_email,'email_error');
var e = false;
}
else{var e = true;}
if(window.ph_error!==undefined){
var ph_error = ph_error.toString();
insRow(document.getElementById(rowindex_w_phone).sectionRowIndex,'',ph_error,1,id_w_ph_ac,'phone_error');
document.getElementById(id_w_ph_pre).className=class_error_textf;
document.getElementById(id_w_ph_num).className=class_error_textf;
var f = false;
var g = false;
var h = false;
} else {
var f = true;
var g = true;
var h = true;
}
if(window.auth_error!==undefined){
var auth_error = auth_error.toString();
insRow(document.getElementById(rowindex_auth).sectionRowIndex,'',auth_error,1,id_AuthCode,'authcode_error');
var q = false;
} else {
var q = true;
}
///////////////////////////////////////////////////////////////
// RUN ALL checks on EXISTING fields before submitting.
///////////////////////////////////////////////////////////////
function ValidateAll()
{
if(window.id_fname!==undefined){
var a = CheckName(o.fname.value,'Please enter your first name.','The first name is not in a valid format.',document.getElementById(rowindex_fname).sectionRowIndex,id_fname,'fname_error');
if(!a){
document.getElementById('tr1').style.display = "";
}
}
else{var a = true;}
if(window.id_lname!==undefined){
var b = CheckName(o.lname.value,'Please enter your last name.','The last name is not in a valid format.',document.getElementById(rowindex_lname).sectionRowIndex,id_lname,'lname_error');
if(!b){
document.getElementById('tr2').style.display = "";
}
}
else{var b = true;}
if(window.id_address!==undefined){
var c = CheckEmpty(o.home_address.value,'Please enter your street address.','',document.getElementById(rowindex_address).sectionRowIndex,id_address,'address_error');
if(!c){
document.getElementById('tr3').style.display = "";
}
}
else{var c = true;}
if(window.id_zip!==undefined){
var d = CheckNum(o.home_zip.value,'Please enter your zip code.','The zipcode you entered is not valid.',document.getElementById(rowindex_zip).sectionRowIndex,id_zip,5,'zip_error');
if(!d){
document.getElementById('tr4').style.display = "";
}
}
else{var d = true;}
if(window.id_email!==undefined){
var e = CheckEmail(o.home_email.value,'Please enter your email.','The email you entered is not valid.',document.getElementById(rowindex_email).sectionRowIndex,id_email,'email_error');
}
else{var e = true;}
if(window.id_w_ph_ac!==undefined){
var f = CheckNum(o.w_ph_ac.value,'Please enter your day time phone.','The phone number is not in a valid format.',document.getElementById(rowindex_w_phone).sectionRowIndex,id_w_ph_ac,3,'phone_error');
var g = CheckNum(o.w_ph_pre.value,'Please enter your day time phone.','The phone number is not in a valid format.',document.getElementById(rowindex_w_phone).sectionRowIndex,id_w_ph_pre,3,'phone_error');
var h = CheckNum(o.w_ph_num.value,'Please enter your day time phone.','The phone number is not in a valid format.',document.getElementById(rowindex_w_phone).sectionRowIndex,id_w_ph_num,4,'phone_error');
if(!f || !g || !h){
document.getElementById('tr6').style.display = "";
}
}
else{var f = true; var g = true; var h = true;}
if(window.id_b_mon!==undefined){
var i = CheckEmpty(o.b_mon.value,'Please select your birthdate.','',document.getElementById(rowindex_bday).sectionRowIndex,id_b_mon,'bday_error');
var j = CheckEmpty(o.b_day.value,'Please select your birthdate.','',document.getElementById(rowindex_bday).sectionRowIndex,id_b_day,'bday_error');
var k = CheckEmpty(o.b_year.value,'Please select your birthdate.','',document.getElementById(rowindex_bday).sectionRowIndex,id_b_year,'bday_error');
var p = computeAge(o,document.getElementById(rowindex_bday).sectionRowIndex,'','Sorry, you must be 18 years or older to register.',id_b_year,'bday_error');
if(!p){
document.getElementById('tr7').style.display = "";
}
}
else{var i = true; var j = true; var k = true; var p = true;}
if(window.id_gender!==undefined){
var l = CheckEmpty(o.Gender.value,'Please select your gender.','',document.getElementById(rowindex_gender).sectionRowIndex,id_gender,error_row_gender);
if(!l){
document.getElementById('tr8').style.display = "";
}
}
else{var l = true;}
if(window.id_marital_status!==undefined){
var m = CheckEmpty(o.marital_status.value,'Please select your marital status.','',document.getElementById(rowindex_marital).sectionRowIndex,id_marital_status,error_row_marital);
if(!m){
document.getElementById('tr8').style.display = "";
}
}
else{var m = true;}
if(window.id_checkbox!==undefined)
{
var n = IsItChecked(checkbox_name,'Sorry, you must agree to the terms and conditions.',id_checkbox);
}
else{var n = true;}
if(a) status='a\n';
if(b) status+='b\n';
if(c) status+='c\n';
if(d) status+='d\n';
if(e) status+='e\n';
if(f) status+='f\n';
if(g) status+='g\n';
if(h) status+='h\n';
if(i) status+='i\n';
if(j) status+='j\n';
if(k) status+='k\n';
if(l) status+='l\n';
if(m) status+='m\n';
if(n) status+='n\n';
if(p) status+='p\n';
if(window.id_AuthCode!==undefined)
{
var q = CheckEmpty(o.AuthCodeBox.value,'Please enter code you see above.','',document.getElementById(rowindex_auth).sectionRowIndex,id_AuthCode,'authcode_error');
}
else{var q = true;}
//alert(status);
if(a && b && c && d && e && f && g && h && i && j && k && l && m && n && p && q)
{
o.submit();
}
else
{
return false;
}
}
///////////////////////////////////////////////////////////////
// STRIP extra spaces from end of string.
// s = value of field.
///////////////////////////////////////////////////////////////
function StripSpacesFromEnds(s)
{
while((s.indexOf(' ',0) == 0) && (s.length > 1))
{
s = s.substring(1,s.length);
}
while((s.lastIndexOf(' ') == (s.length - 1) && (s.length > 1)))
{
s = s.substring(0,(s.length - 1));
}
if((s.indexOf(' ',0) == 0) && (s.length == 1)) s = '';
return s;
}
///////////////////////////////////////////////////////////////
// remove anything between parentheses.
// s = value of field.
///////////////////////////////////////////////////////////////
function RemoveParentheses(s){
if(s.substr(0,1)=='(' && s.substr((s.length-1),1)==')'){
return '';
} else {
return s;
}
}
///////////////////////////////////////////////////////////////
// checks if CHECKED or not.
// checkname = id of checkbox.
// errormsg = error message to display when unchecked.
// tdname = input id to add css class.
///////////////////////////////////////////////////////////////
function IsItChecked(checkname,errormsg,tdname)
{
if(!document.getElementById(checkname).checked)
{
document.getElementById(tdname).className=class_error_checkbox;
alert(errormsg);
}
else
{
document.getElementById(tdname).className=class_regular_checkbox;
return true;
}
}
///////////////////////////////////////////////////////////////
// checks if EMPTY.
// value = value of field.
///////////////////////////////////////////////////////////////
function IsItPresent(value)
{
value = StripSpacesFromEnds(value);
value = RemoveParentheses(value)
if(value.length != 0)
{
return value;
}
else
{
return false;
}
}
///////////////////////////////////////////////////////////////
// SHOW errors in new row.
// where = index of row.
// error_empty = error message to display when blank.
// error_invalid= error message to display when invalid.
// invalid = equals 1 if value is invalid.
// tdname = input id to add css class.
// error_field = id of error row.
///////////////////////////////////////////////////////////////
function insRow(where,error_empty,error_invalid,invalid,tdname,error_field)
{
document.getElementById(tdname).className=class_error_textf;
if(!(document.getElementById(error_field)) && (invalid!==1))
{
where=where+1;
var x=document.getElementById(table_name).insertRow(where);
var y = new Array();
for(var i=0; i
"+ error_empty +" ";
}
else if(!(document.getElementById(error_field)) && (invalid==1))
{
where=where+1;
var x=document.getElementById(table_name).insertRow(where);
var y = new Array();
for(var i=0; i
"+ error_invalid +" ";
}
}
///////////////////////////////////////////////////////////////
// DELETE error row.
// where = index of row.
// tdname = input id to add css class.
// error_field = id of error row.
///////////////////////////////////////////////////////////////
function delRow(where,tdname,error_field)
{
where=where+1;
if(document.getElementById(error_field))
{
document.getElementById(table_name).deleteRow(where);
document.getElementById(tdname).className=class_regular;
}
else
{
return false;
}
}
///////////////////////////////////////////////////////////////
// checks if EMPTY and allows only ALPHA and ' and . and - keys.
// value = value of field.
// error_empty = error message to display when blank.
// error_invalid= error message to display when invalid.
// where = index of row.
// tdname = input id to add css class.
// error_field = id of error row.
///////////////////////////////////////////////////////////////
function CheckEmpty(value,error_empty,error_invalid,where,tdname,error_field){
value = IsItPresent(value);
if(! value){
insRow(where,error_empty,error_invalid,0,tdname,error_field);
return false;
} else {
if(tdname==id_b_mon || tdname==id_b_day || tdname==id_b_year) {
if((document.getElementById(id_b_mon).className==class_regular) && (document.getElementById(id_b_day).className==class_regular) && (document.getElementById(id_b_year).className==class_regular)) {
delRow(where,tdname,error_field);
return true;
} else {
return false;
}
}
if(tdname==id_address) {
//alert(document.getElementById(id_address).className);
if(document.getElementById(id_address).className==class_regular) {
delRow(where,tdname,error_field);
return true;
} else {
return false;
}
}
return true;
}
}
///////////////////////////////////////////////////////////////
// checks if EMPTY and allows only ALPHA and ' and . and - keys.
// value = value of field.
// error_empty = error message to display when blank.
// error_invalid= error message to display when invalid.
// where = index of row.
// tdname = input id to add css class.
// error_field = id of error row.
///////////////////////////////////////////////////////////////
function CheckName(value,error_empty,error_invalid,where,tdname,error_field)
{
value = IsItPresent(value);
if(! value)
{
insRow(where,error_empty,error_invalid,0,tdname,error_field);
return false;
}
var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.- ";
var allValid = true;
for (i = 0; i < value.length; i++)
{
ch = value.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
insRow(where,error_empty,error_invalid,1,tdname,error_field);
return false;
}
else
{
delRow(where,tdname,error_field);
return true;
}
}
///////////////////////////////////////////////////////////////
// checks if EMPTY and allows only NUMERIC and . and - keys.
// value = value of field.
// error_empty = error message to display when blank.
// error_invalid= error message to display when invalid.
// where = index of row.
// tdname = input id to add css class.
// length = checks for minimum character length.
// error_field = id of error row.
///////////////////////////////////////////////////////////////
function CheckNum(value,error_empty,error_invalid,where,tdname,length,error_field)
{
value = IsItPresent(value);
if(! value)
{
insRow(where,error_empty,error_invalid,0,tdname,error_field);
return false;
}
var checkOK = "0123456789.- ";
var allValid = true;
for (i = 0; i < value.length; i++)
{
ch = value.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
insRow(where,error_empty,error_invalid,1,tdname,error_field);
return false;
}
else
{
if(length)
{
if(value.length -1)
{
email = email.substring(0,i) +
email.substring((i + 1),email.length);
i = email.indexOf(' ',0);
}
if((email.length < 6) ||
(email.indexOf('@',0) < 1) ||
(email.lastIndexOf('@') != email.indexOf('@',0)) ||
(email.lastIndexOf('@') > (email.length - 5)) ||
(email.indexOf('..',0) > -1) ||
(email.indexOf('@.',0) > -1) ||
(email.indexOf('.@',0) > -1) ||
(email.indexOf(',',0) > -1))
{
insRow(where,error_empty,error_invalid,1,tdname,error_field);
return false;
}
else
{
if(document.getElementById(id_email).className==class_regular)
{
delRow(where,tdname,error_field);
return true;
}
else
{
return false;
}
}
}
///////////////////////////////////////////////////////////////
// gets DAYS for each MONTH.
// month = today's month.
// year = today's year.
// julianFlag = for leap years. not used.
///////////////////////////////////////////////////////////////
function getMonthLength(month,year,julianFlag)
{
var ml;
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{ml = 31;}
else {
if(month==2) {
ml = 28;
if(!(year%4) && (julianFlag==1 || year%100 || !(year%400)))
ml++;
}
else
{ml = 30;}
}
return ml;
}
///////////////////////////////////////////////////////////////
// calculate AGE from BIRTHDAY.
// FILTER of 18 yrs old and above only.
// form = form name.
// where = index of row.
// error_empty = error message to display when blank.
// error_invalid= error message to display when invalid.
// tdname = input id to add css class.
// error_field = id of error row.
///////////////////////////////////////////////////////////////
function computeAge(form,where,error_empty,error_invalid,tdname,error_field)
{
// var ml={31,28,31,30,31,30,31,31,30,31,30,31};
if((form.b_year.value !='') && (form.b_mon.value !='') && (form.b_day.value !=''))
{
MNames=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep",
"Oct","Nov","Dec");
Today=new Date();
var yd = Today.getFullYear()+0;
var md = Today.getMonth()+1;
var dd = Today.getDate();
var yb = parseInt(form.b_year.value);
var mb = parseInt(form.b_mon.value);
var db = parseInt(form.b_day.value);
// Month length 0->use calendar length
var mLength = 0;
// 0 if Gregorian, 1 is Julian
var ma=0;
var ya=0;
var da = dd-db;
// This is the all-important day borrowing code.
if(da<0)
{
md--;
// Borrow months from the year if necesssary.
if(md<1)
{
yd--;
// Determine no. of months in year
if(mLength)
{md=md+parseInt(365/mLength);}
else
{md=md+12;}
}
if(mLength==0) // Use real month length if no fixed
{ // length is indicated - note that we add a leap day if necessary.
ml=getMonthLength(md,yd);
da=da+ml;
}
// For this case, everything works like it did in elementary school.
else
{da+=mLength;} // Use fixed month length
}
ma = md - mb;
// Month borrowing code - borrows months from years.
if(ma<0)
{
yd--;
if(mLength!=0)
{ma=ma+parseInt(365/mLength);}
else
{ma=ma+12;}
}
ya = yd - yb;
if(ya<18)
{
//alert(where +" || "+ error_empty +" || "+error_invalid +" || "+tdname+" || "+ error_field);
document.getElementById(id_b_mon).className=class_error_textf;
document.getElementById(id_b_day).className=class_error_textf;
insRow(where,error_empty,error_invalid,1,tdname,error_field);
return false;
}
else
{
delRow(where,tdname,error_field);
return true;
}
}
}