// within the including form - 
//<FORM Action="Submit.asp" method="post" onSubmit=" this.optCategory.chooser = true; this.txtdate.checkdate = true; this.txtEmail.checkemail = true; this.txtMoviePara2.optional = true; this.txtMoviePara1.textmax = 50; this.txtMoviePara1.maxwordcount = 25; return verify(this);">

function deleteRegistration(i, x, xid, eid, ec, l) {
	if (confirm('Are you sure you want to delete this registration?')) {
		if (l==1)
			location.href = 'http://www.lido.com.au/registration/reg_event_3_delete.aspx?xid=' + xid + '&eid=' + eid + '&cid=' + ec + '&act=del&id=' + i.substring(8) + '&x=' + x;
		else
			location.href = './reg_event_3_delete.aspx?xid=' + xid + '&eid=' + eid + '&cid=' + ec + '&act=del&id=' + i.substring(8) + '&x=' + x;
	}
}

function isblank(s)
{
    for(var i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
    }
    return true;
}


function isCheck(s)
{
    // if (s.value ==0) return false;
    return true;
}

function IsEmailValid(s)
{
var AtSym    = s.value.indexOf('@')
var Period   = s.value.lastIndexOf('.')
var Space    = s.value.indexOf(' ')
var Length   = s.value.length - 1   // Array is from 0 to length-1

if ((AtSym < 1) ||                     // '@' cannot be in first position
   (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
   (Period == Length ) ||             // Must be atleast one valid char after '.'
   (Space  != -1))                    // No empty spaces permitted
   return true;
else   
	return false;
}

/*function almost working to check the validity of a credit card number
function IsCreditCardValid(s){
  var i
  var j
  var k
  var tmp
  
   s.value.replace(' ', '');
    s.value.replace('-', '');
   if (s.value.len < 1){
    	return true;
   }
   alert(s.value);
   i=1;
   while (i<=s){
    	if (!isNan(s.value.substr(i,1))){
			alert("NAN");
    		return true;
		}
    	i= i+1;
   }
   j=0;
   k=0;
   i=s.value.len;
   while (i>0){
    	if (i>1){
    		tmp=(s.value.charCodeAt(i-1)-48)*2;
    		if (tmp>9){
    			j=j+tmp-9;
    		}
			else{
    			j=j+tmp;
    		}
	    	k=k+(s.value.charCodeAt(i)-48);
	    	i=i-2;
		}
	}
	alert(j);
	alert(k);
    j=(j+k) % 10;
    if (j==0){
    	return false;
	}
	else{
		return true;
	}
}*/

function CheckDate(objName) {
<!-- Begin
<!-- Original:  Mike Welagen (welagenm@hotmail.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
var datefield = objName;
if (chkdate(objName) == false) {
return true;
}
else {
return false;
   }
}
function chkdate(objName) {
//var strDatestyle = "US"; //United States date style
var strDatestyle = "EU";  //European date style
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
strDate = datefield.value;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
if (strYear.length == 2) {
	xintYear = parseInt(strYear, 10);
	if (xintYear<20) {
		strYear = '20' + strYear;
	} else {
		strYear = '19' + strYear;
	}	
}
// US style
if (strDatestyle == "US") {
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
if (strDatestyle == "US") {
datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
}
else {
datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
//  End -->






// This is the function that performs form verification. It will be invoked from the onSubmit() event handler. The handler should return whatever value this function returns.
function verify(f)
{
    var msg;
    var empty_fields = "";
    var errors = "";

    // Loop through the elements of the form, looking for all text and textarea elements that don't have an "optional" property defined. Then, check for fields that are empty and make a list of them. Also, if any of these elements have a "min" or a "max" property defined, then verify that they are numbers and that they are in the right range. Put together error messages for fields that are wrong.
    for(var i = 0; i < f.length; i++) {
        var e = f.elements[i];
		if (e.chooser) {		// check to see if options selected
            if (e.options[0].selected) {
				errors += "\n - The " + e.name + " must be selected.";
				continue;
			}	
		}		
		
		if (e.checkemail) {       // check to see if any email addresses are OK
			if(IsEmailValid(e)) {				
				errors += "\n - The " + e.name + " must be in a valid email format.";
				continue;
			}		
		}
		
	/*'if (e.checkcreditcard) {       // check to see if a credit card number is OK
			alert("im in here");
			creditcardnumber = e.value
			if(IsCreditCardValid(e)) {				
				errors += "\n - The " + e.name + " must be in a valid credit card number.";
				continue;
			}
		}*/
		
		if (e.checkcreditcardtype) {       // save card type to check later
			creditcardtype = e.value
		}
		
		if (e.checkdate) {       // check to see if any date fields are OK
			if(CheckDate(e)) {				
				errors += "\n - The " + e.name + " must be in a valid date format.";
				continue;
			}		
		}
		
	// Check text field maximumlengths
    	if (e.textmax != null) { 
        	var d = e.value.length;
                if (d > e.textmax) {
                    errors += "- The field " + e.name + " is too long - it is " + d + " characters, and is only allowed to be " + e.textmax;
                    errors += ".\n";
                }
           }

		
		
        if (((e.type == "text") || (e.type == "password") || (e.type == "textarea")) && !e.optional) {        // first check if the field is empty
            if ((e.value == null) || (e.value == "") || isblank(e.value)) {
                empty_fields += "\n          " + e.name;
                continue;
            }
			
            // Check text field wordcount
            if (e.maxwordcount != null) { 
                var h = e.value;
                h = h.split(" ")
				if (h.length > e.maxwordcount) {
                    errors += "- The field " + e.name + " is too long - it is only allowed to be " + e.maxwordcount + " words.";
                    errors += ".\n";
                }
            }
			
            // Now check for fields that are supposed to be numeric.
            if (e.numeric || (e.min != null) || (e.max != null)) { 
                var v = parseFloat(e.value);
                if (isNaN(v) || 
                    ((e.min != null) && (v < e.min)) || 
                    ((e.max != null) && (v > e.max))) {
                    errors += "- The field " + e.name + " must be a number";
                    if (e.min != null) 
                        errors += " that is greater than " + e.min;
                    if (e.max != null && e.min != null) 
                        errors += " and less than " + e.max;
                    else if (e.max != null)
                        errors += " that is less than " + e.max;
                    errors += ".\n";
                }
            }
        }
    }
    // Now, if there were any errors, display the messages, and return false to prevent the form from being submitted.  Otherwise return true.
    if (!empty_fields && !errors) return true;

    msg  = "______________________________________________________\n\n"
    msg += "The form was not submitted because of the following error(s).\n";
    msg += "Please correct these and re-submit.\n";
    msg += "______________________________________________________\n\n"

    if (empty_fields) {
        msg += "- The following required field(s) are empty:" 
                + empty_fields + "\n";
        if (errors) msg += "\n";
    }
    msg += errors;
    alert(msg);
    return false;
}