function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');        
    if(isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;    
    num = Math.floor(num/100).toString();
    if(cents<10)
        cents = "0" + cents;
    return (((sign)?'':'-') + num + '.' + cents);
}

// validates a 3 part date
function validateDate(yearField,monthField,dayField) {
    var tempDay, tempYear,tempMonth;
    tempDay = new Number(dayField.options[dayField.selectedIndex].value);
    tempYear = new Number(yearField.options[yearField.selectedIndex].value);
    tempMonth = monthField.options[monthField.selectedIndex].value;    
    if (tempMonth == 'Feb' || tempMonth == 'Apr' || tempMonth == 'Jun' || tempMonth == 'Sep' || tempMonth == 'Nov') {
        if (tempMonth == 'Feb') {
                if (tempYear % 4 == 0) {
                    if (tempDay > 29) {
                        alert('THERE ARE ONLY 29 DAYS IN FEBRUARY ' + tempYear);
                        dayField.focus();
                        return 0;
                    }
                }
                else {
                    if (tempDay > 28) {                
                        alert('THERE ARE ONLY 28 DAYS IN FEBRUARY ' + tempYear);
                        dayField.focus();
                        return 0;
                    }
                }
        }
        else if (tempDay > 30) {
                if (tempMonth == 'Apr') {tempMonth = 'APRIL'}
                if (tempMonth == 'Jun') {tempMonth = 'JUNE'}
                if (tempMonth == 'Sep') {tempMonth = 'SEPTEMBER'}
                if (tempMonth == 'Nov') {tempMonth = 'NOVEMBER'}
                alert('THERE ARE ONLY 30 DAYS IN ' + tempMonth);
                dayField.focus();
                return 0;
        }
    }
    return 1;
}

function validateDateRestrict(yearField,monthField,dayField,restrict) {
    var tempDay, tempYear, tempMonth, tempMonthNum, tempToday, tempDate;
    tempDay = new Number(dayField.options[dayField.selectedIndex].value);
    tempYear = new Number(yearField.options[yearField.selectedIndex].value);
    tempMonth = monthField.options[monthField.selectedIndex].value;
    if (tempMonth == 'Feb' || tempMonth == 'Apr' || tempMonth == 'Jun' || tempMonth == 'Sep' || tempMonth == 'Nov') {
        if (tempMonth == 'Feb') {
                if (tempYear % 4 == 0) {
                    if (tempDay > 29) {
                        alert('THERE ARE ONLY 29 DAYS IN FEBRUARY ' + tempYear);
                        dayField.focus();
                        return 0;
                    }
                }
                else {
                    if (tempDay > 28) {                
                        alert('THERE ARE ONLY 28 DAYS IN FEBRUARY ' + tempYear);
                        dayField.focus();
                        return 0;
                    }
                }
        }
        else if (tempDay > 30) {
                if (tempMonth == 'Apr') {tempMonth = 'APRIL'}
                if (tempMonth == 'Jun') {tempMonth = 'JUNE'}
                if (tempMonth == 'Sep') {tempMonth = 'SEPTEMBER'}
                if (tempMonth == 'Nov') {tempMonth = 'NOVEMBER'}
                alert('THERE ARE ONLY 30 DAYS IN ' + tempMonth);
                dayField.focus();
                return 0;
        }
    }
	switch (tempMonth) {
     case 'Jan':
     	tempMonthnum = 0
     	break;
     case 'Feb':
     	tempMonthnum = 1
     	break;
     case 'Mar':
     	tempMonthnum = 2
     	break;
     case 'Apr':
     	tempMonthnum = 3
     	break;
     case 'May':
     	tempMonthnum = 4
     	break;
     case 'Jun':
     	tempMonthnum = 5
     	break;
     case 'Jul':
     	tempMonthnum = 6
     	break;
     case 'Aug':
     	tempMonthnum = 7
     	break;
     case 'Sep':
     	tempMonthnum = 8
     	break;
     case 'Oct':
     	tempMonthnum = 9
     	break;
     case 'Nov':
     	tempMonthnum = 10
     	break;
     case 'Dec':
     	tempMonthnum = 11
     	break;
    }
    tempToday = new Date()
    tempDate = new Date(tempYear,tempMonthnum,tempDay)
    if (restrict == -1 && tempDate > tempToday) {
    		alert('DATE MUST BE TODAY OR EARLIER');
    		monthField.focus();
    		return 0;
    }
    if (restrict == 1 && tempDate < tempToday) {
    		alert('DATE MUST BE TODAY OR LATER');
    		monthField.focus();
    		return 0;
    }    
    return 1;
}


//validate a  3 part phone number
function validatePhone(fieldNameA,fieldNameB,fieldNameC,required,name) {
	var actualNumber = fieldNameA.value + fieldNameB.value + fieldNameC.value;
	var Alen = fieldNameA.value.length;
	var Blen = fieldNameB.value.length;
	var Clen = fieldNameC.value.length;
	if (required == 1) {
		if (Alen == 0 && Blen == 0 && Clen == 0) {
	        alert('INVALID ENTRY: YOU MUST ENTER THE ' + name);
	        fieldNameA.select();
	        fieldNameA.focus();
	        return 0;
		}
	    if ((isNaN(actualNumber)) || (Alen != 3) || (Blen != 3) || (Clen != 4)) {
	        alert('INVALID ENTRY: A PART OF THE ENTERED ' + name + ' IS INVALID');
	        fieldNameA.select();
	        fieldNameA.focus();
	        return 0;
		}
	}
	if (required == 0) {
		if (Blen != 0 || Clen != 0) {
		    if (isNaN(actualNumber) || Alen != 3 || Blen != 3 || Clen != 4) {
		        alert('INVALID ENTRY: A PART OF THE ENTERED ' + name + ' IS INVALID');
		        fieldNameA.select();
		        fieldNameA.focus();
		        return 0;
			}
		}
	}	
	return 1;
}
//validate a 4 part phone number
function validatePhoneExt(fieldNameA,fieldNameB,fieldNameC,fieldNameD,required,name) {
	var actualNumber = fieldNameA.value + fieldNameB.value + fieldNameC.value + fieldNameD.value;
	var Alen = fieldNameA.value.length;
	var Blen = fieldNameB.value.length;
	var Clen = fieldNameC.value.length;
	var Dlen = fieldNameD.value.length;
	if (required == 1) {
		if (Alen == 0 && Blen == 0 && Clen == 0) {
	        alert('INVALID ENTRY: YOU MUST ENTER THE ' + name);
	        fieldNameA.select();
	        fieldNameA.focus();
	        return 0;
		}
	    if (isNaN(actualNumber) || Alen != 3 || Blen != 3 || Clen != 4) {
	        alert('INVALID ENTRY: A PART OF THE ENTERED ' + name + ' IS INVALID');
	        fieldNameA.select();
	        fieldNameA.focus();
	        return 0;
		}
	}
	if (required == 0) {
		if (Blen != 0 || Clen != 0 || Dlen != 0) {
		    if (isNaN(actualNumber) || Alen != 3 || Blen != 3 || Clen != 4) {
		        alert('INVALID ENTRY: A PART OF THE ENTERED ' + name + ' IS INVALID');
		        fieldNameA.select();
		        fieldNameA.focus();
		        return 0;
			}
		}
	}	
	return 1;
}
// validates a number field
function validateNumber(objAddressField,type,sign,zero,decimals,divisible,required,name) {
	var textEntered = objAddressField.value;
    var i;
    var num;
    if (required == 1 && textEntered.length == 0) {
        alert('INVALID ENTRY : YOU MUST ENTER THE ' + name);
        objAddressField.select();
        objAddressField.focus();
        return 0;
    }
	if (required == 1 || textEntered.length > 0) {
        if (isNaN(textEntered)) {
            alert('INVALID ENTRY : ' + name + ' MUST BE A NUMBER');
            objAddressField.select();
            objAddressField.focus();
            return 0;    
        }
        num = Number(textEntered)
        if (sign == 'p') {
           if (num < 0) {
                alert('INVALID ENTRY : ' + name + ' MUST BE A POSITIVE NUMBER');
                objAddressField.select();
                objAddressField.focus();
                return 0;
           }
        }
        if (sign == 'n') {
            if (num > 0) {
                alert('INVALID ENTRY : ' + name + ' MUST BE A NEGATIVE NUMBER');
                objAddressField.select();
                objAddressField.focus();
                return 0;            
            }
        }
        if (zero == 0 && num == 0) {
            alert('INVALID ENTRY : ' + name + ' CANNOT BE 0');
            objAddressField.select();
            objAddressField.focus();
            return 0;            
        }        
        if (type == 'i') {
            if (textEntered.indexOf('\.') > -1) {
                alert('INVALID ENTRY : ' + name + ' MUST BE A WHOLE NUMBER');
                objAddressField.select();
                objAddressField.focus();
                return 0;
            }
        }
        if (type == 'r') {
            i = textEntered.indexOf('\.')
            if (i >= 0) {
                i = i + decimals + 2
                if (textEntered.length > i) {
                    alert('INVALID ENTRY : ' + name + ' MUST HAVE NO MORE THAN ' + decimals + ' DECIMAL PLACES');
                    objAddressField.select();
                    objAddressField.focus();
                    return 0;
                }
            }
        }
        if (divisible != 0) {
            if (num % divisible != 0) {
                alert('INVALID ENTRY : ' + name + ' MUST BE DIVISIBLE BY ' + divisible);
                objAddressField.select();
                objAddressField.focus();
                return 0;                    
            }
        }
    }
    return 1;
}

// validates a text field
function validateTextField(objAddressField,min,max,type,required,name) {
	var textEntered = objAddressField.value;
    var phoneA, phoneB, phoneC, dashindex
    if (required == 1 && textEntered.length == 0) {
        alert('INVALID ENTRY : YOU MUST ENTER THE ' + name);
        objAddressField.select();
        objAddressField.focus();
        return 0;
    }
	if (required == 1 || textEntered.length > 0) {
        switch (type) {
            case 'alpha':
                if (checkForInvalidCharacters(textEntered,objAddressField,'alpha',name) == false) {return 0;}    
                break;                
            case 'alphanum':
                if (checkForInvalidCharacters(textEntered,objAddressField,'alphanum',name) == false) {return 0;}    
                break;
            case 'userpass':
                if (checkForInvalidCharacters(textEntered,objAddressField,'userpass',name) == false) {return 0;}    
                break;               
            case 'textarea':
                if (checkForInvalidCharacters(textEntered,objAddressField,'textarea',name) == false) {return 0;}            
                break;
            case 'text':
                if (checkForInvalidCharacters(textEntered,objAddressField,'textarea',name) == false) {return 0;}            
                break;
            case 'name':
                if (checkForInvalidCharacters(textEntered,objAddressField,'name',name) == false) {return 0;}                
                break;                
            case 'address':
                if (checkForInvalidCharacters(textEntered,objAddressField,'address',name) == false) {return 0;}
                break;                
           case 'tourn':
                if (checkForInvalidCharacters(textEntered,objAddressField,'tourn',name) == false) {return 0;}                
                break;                
            case 'phone':
            	if (textEntered.length < 12) {
    	          alert('INVALID ENTRY : IMPROPER ' + name + ' FORMAT');
	                objAddressField.select();
	                objAddressField.focus();
	                return 0;	            
                }
                phoneA = textEntered.substr(0,3);
                phoneB = textEntered.substr(4,3);
                phoneC = textEntered.substr(8,4);
                if (isNaN(phoneA) || isNaN(phoneB) || isNaN(phoneC)) {
        	          alert('INVALID ENTRY : IMPROPER ' + name + ' FORMAT');
    	          objAddressField.select();
    	          objAddressField.focus();
    	          return 0;
                }                    
                dashindex = textEntered.indexOf('\-');
    	      if (dashindex != 3) {
        	          alert('INVALID ENTRY : IMPROPER ' + name + ' FORMAT');
    	          objAddressField.select();
    	          objAddressField.focus();
    	          return 0;
                }
                dashindex = textEntered.lastIndexOf('\-');
                if (dashindex != 7) {
        	          alert('INVALID ENTRY : IMPROPER ' + name + ' FORMAT');
    	          objAddressField.select();
    	          objAddressField.focus();
    	          return 0;
                }
                break;
        }
        if (textEntered.length < min || textEntered.length > max) {
                if (min == max) {
                    alert('INVALID ENTRY : ' + name + ' MUST BE ' + min +' CHARACTERS');
                    objAddressField.select();
                    objAddressField.focus();
                    return 0;                
                }
                else {
                    alert('INVALID ENTRY : ' + name + ' MUST BE BETWEEN ' + min + ' AND ' + max +' CHARACTERS');
                    objAddressField.select();
                    objAddressField.focus();
                    return 0;
                }
        }
    }
    return 1;
}
// checks for bad characters
function checkForInvalidCharacters(textstring,objAddressField,type,name) {
    // need to check for any characters that cause a problem
    if (textstring.indexOf('\`') > -1) {
        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \` IN IT');
        objAddressField.select();
        objAddressField.focus();
        return 0;        
    }
    if (textstring.indexOf('\~') > -1) {
        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \~ IN IT');
        objAddressField.select();
        objAddressField.focus();
        return 0;        
    }    
    if (textstring.indexOf('\^') > -1) {
        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \^ IN IT');
        objAddressField.select();
        objAddressField.focus();
        return 0;        
    }
    if (textstring.indexOf('\|') > -1) {
        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \| IN IT');
        objAddressField.select();
        objAddressField.focus();
        return 0;        
    }
    if (textstring.indexOf('\"') > -1) {
        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \" IN IT');
        objAddressField.select();
        objAddressField.focus();
        return 0;        
    }
    if (type != 'tourn' && type != 'textarea' && type != 'address' && textstring.indexOf('\#') > -1) {
        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \# IN IT');
        objAddressField.select();
        objAddressField.focus();
        return 0;        
    }
	if (type != 'textarea') {
	    if (textstring.indexOf('\$') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \$ IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\%') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \% IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }    
	    if (textstring.indexOf('\=') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \= IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\*') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \* IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\{') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \{ IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\}') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \} IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\[') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \[ IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\]') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \] IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\\') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \\ IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\/') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \/ IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\<') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \< IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
	    if (textstring.indexOf('\>') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \> IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
    }
    else {
    	return 1;
    }
    if (type == 'alpha' || type == 'alphanum' || type == 'email2' || type == 'name' || type == 'email1' || type == 'userpass' || type == 'address') {
	    if (textstring.indexOf('\@') > -1) {
	        alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \@ IN IT');
	        objAddressField.select();
	        objAddressField.focus();
	        return 0;        
	    }
        if (textstring.indexOf('\,') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \, IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\:') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \: IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\;') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \; IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\!') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \! IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\?') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \? IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\(') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \( IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\)') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \) IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
    }
    if (type == 'alpha' || type == 'alphanum' || type == 'email2' || type == 'name' || type == 'userpass' || type == 'tourn' || type == 'address') {

        if (textstring.indexOf('\+') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \+ IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
        if (textstring.indexOf('\&') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \& IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
    }
    if (type == 'email1' || type == 'email2' || type == 'userpass'){
        if (textstring.indexOf(' ') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY SPACES IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;
        }       
    }
    if (type == 'alpha' || type == 'alphanum' || type == 'email2' || type == 'userpass' || type == 'tourn') {
        if (textstring.indexOf('\'') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \' IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
    }
    if (type == 'alpha' || type == 'alphanum' || type == 'userpass') {
        if (textstring.indexOf('\.') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \. IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }
         if (textstring.indexOf('\-') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \- IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        } 
    }
    if (type == 'name' || type == 'alpha' || type == 'alphanum' || type == 'userpass' || type == 'tourn') {
        if (textstring.indexOf('\_') > -1) {
            alert('INVALID ENTRY : ' + name + ' CANNOT HAVE ANY \_ IN IT');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }   
    }
    if (type == 'alpha') {
        if (textstring.indexOf('0') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('1') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('2') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('3') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('4') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('5') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('6') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('7') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('8') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
        if (textstring.indexOf('9') > -1) {
            alert('INVALID ENTRY : ' + name + ' MUST BE ALPHABETIC');
            objAddressField.select();
            objAddressField.focus();
            return 0;        
        }    
    }
    return 1;
}
// validates an email address
function validateEmail(objAddressField,required,max) {
    var atindex, localpart, domainpart
	var emailAddressEntered = objAddressField.value;
    if (required == 1 && emailAddressEntered.length == 0) {
		alert('INVALID ENTRY : YOU MUST ENTER THE EMAIL ADDRESS');
		objAddressField.focus();
		objAddressField.select();
    	return 0;    
    }
	if (required == 1 || emailAddressEntered.length > 0) {
        atindex = emailAddressEntered.indexOf('\@')
        if (atindex < 1 || emailAddressEntered.length > max){
   	          alert('INVALID ENTRY : IMPROPER EMAIL ADDRESS');
		    objAddressField.focus();
	          objAddressField.select();
    	    return 0;    
        }
        localpart = emailAddressEntered.substr(0,atindex)
        domainpart = emailAddressEntered.substr(atindex + 1)
        if (localpart.indexOf('\@') > -1 || domainpart.indexOf('\@') > -1) {
	        alert('INVALID ENTRY : IMPROPER EMAIL ADDRESS');
	        objAddressField.focus();
	        objAddressField.select();
            return 0;        
        }
        if (emailAddressEntered.lastIndexOf('\.') < atindex + 2) {
            alert('INVALID ENTRY : IMPROPER EMAIL ADDRESS');
            objAddressField.focus();
            objAddressField.select();
            return 0;
	    }
        if (checkForInvalidCharacters(localpart,objAddressField,'email1','EMAIL ADDRESS LOCAL PART') == false) {return 0;}
        if (checkForInvalidCharacters(domainpart,objAddressField,'email2','EMAIL ADDRESS DOMAIN PART') == false) {return 0;}
    }
    return 1;
}
// validates a postal Code
function validatePostalCode(objAddressField,required) {
    var myText, myRegEx, result
	var postalCodeEntered = objAddressField.value;
    if (required == 1 && postalCodeEntered.length == 0) {
		alert('INVALID ENTRY : YOU MUST ENTER THE POSTAL CODE');
		objAddressField.focus();
		objAddressField.select();
    	return 0;    
    }
	if (required == 1 || postalCodeEntered.length > 0) {
		if (postalCodeEntered.length != 6) {
			alert('INVALID ENTRY : IMPROPER POSTAL CODE');
			objAddressField.select();
			objAddressField.focus();
			return 0;
		}
		myText = new String(postalCodeEntered);
		myRegEx = new RegExp('[A-Z][0-9][A-Z][0-9][A-Z][0-9]','g');
		result = myText.match(myRegEx);
		if (result == null) {
			alert('INVALID ENTRY : IMPROPER POSTAL CODE FORMAT');
			objAddressField.select();
			objAddressField.focus();
			return 0;
		}	 
    }
    return 1;
}
// validates a select field
function validateSelect(objAddressField,required,name) {
	var optionSelected = false;
	if (required == 1) {
        if (objAddressField.options[objAddressField.selectedIndex].value.length > 0) {
            optionSelected = true;
	    }        		
	}
	if (optionSelected == false && required == 1) {
	    alert('INVALID ENTRY : YOU MUST SELECT A ' + name);
	    objAddressField.focus();
	    return 0;
    } else {return 1;}
}
// validates a check box
function validateCheckBox(objAddressField,required,name,num) {
	var optionSelected = false;
	if (required == 1) {
	    if (num > 1) {
            for (var i=0; i<num; i++) {
                if (objAddressField[i].checked == true) {
                    optionSelected = true;
                }
            }        		
	    } 
        else {
	        if (objAddressField.checked == true) {
                optionSelected = true;
	        }
	    }
	}
	if (optionSelected == false) {
	    alert('INVALID ENTRY : YOU MUST SELECT A ' + name);
	    return 0;
    } else {return 1;}
}

function validateExperience(objAddressField,required,name) {
	var textEntered = objAddressField.value;
	var spaceindex, numstart, str1, str2
	var str1, str2, str1c, str2c
	spaceindex = textEntered.indexOf(' ')
    if (required == 1 && textEntered.length == 0) {
		    alert('YOU MUST ENTER THE ' + name);
			objAddressField.select();
			objAddressField.focus();
		    return 0;
    }
	if (required == 1 || textEntered.length > 0) {
	    if (spaceindex <= 0) {
		    alert('INVALID ' + name + ' FOR NEW PLAYER');
			objAddressField.select();
			objAddressField.focus();
		    return 0;
	    }
	    str1 = textEntered.substr(0,spaceindex);
	   	str1c = str1.toUpperCase();	    
	    if (str1c != 'OWHA' && str1c != 'BOYS' && str1c != 'PROV' && str1c != 'INTL' && str1c != 'RING') {
		    alert('INVALID ' + name + ' FOR NEW PLAYER');
			objAddressField.select();
			objAddressField.focus();
		    return 0;
	    }
	    numstart = spaceindex + 1
	    str2 = textEntered.substr(numstart);
	   	str2c = str2.toUpperCase();	    
	    if (str2c != 'HL' && str2c != 'AAA' && str2c != 'AA' && str2c != 'A' && str2c != 'BB' && str2c != 'B' && str2c != 'C' && str2c != 'OTHER') {
		    alert('INVALID ' + name + ' FOR NEW PLAYER');
			objAddressField.select();
			objAddressField.focus();
		    return 0;
	    } 
	}
	return 1;
}

function fDate(fYear,fMonthName,fDay) {
var tempMonthnum
var fnewdate
	switch (fMonthName) {
     case 'Jan':
     	tempMonthnum = 0
     	break;
     case 'Feb':
     	tempMonthnum = 1
     	break;
     case 'Mar':
     	tempMonthnum = 2
     	break;
     case 'Apr':
     	tempMonthnum = 3
     	break;
     case 'May':
     	tempMonthnum = 4
     	break;
     case 'Jun':
     	tempMonthnum = 5
     	break;
     case 'Jul':
     	tempMonthnum = 6
     	break;
     case 'Aug':
     	tempMonthnum = 7
     	break;
     case 'Sep':
     	tempMonthnum = 8
     	break;
     case 'Oct':
     	tempMonthnum = 9
     	break;
     case 'Nov':
     	tempMonthnum = 10
     	break;
     case 'Dec':
     	tempMonthnum = 11
     	break;
    }
    fnewdate = new Date(fYear,tempMonthnum,fDay);
    return (fnewdate);
}

