function submitDonation(){
	var submitok = true;
var	vdate=document.getElementById('_ccdate').value;
var	vamount=document.getElementById('_ccamount').value;
var vfname=document.getElementById('_dfname').value;
	var vlname=document.getElementById('_dlname').value;
	var vcompany=document.getElementById('_dcompany').value;
	var vaddress1=document.getElementById('_daddress1').value;
	var vaddress2=document.getElementById('_daddress2').value;
	var vcity=document.getElementById('_dcity').value;
	var vzip5=document.getElementById('_dzip5').value;
	var vzip4=document.getElementById('_dzip4').value;
	var vhphone=document.getElementById('_dhphone').value;
	var vemail=document.getElementById('_demail').value;
	var vmemo=document.getElementById('_dmemo').value;
	var vstate=document.getElementById('_dstate').options[document.getElementById('_dstate').selectedIndex].value;
	var vcountyid=document.getElementById('_countyid').value;
	var vfnameh=document.getElementById('_dfnameh').value;
	var vlnameh=document.getElementById('_dlnameh').value;
	var vcompanyh=document.getElementById('_dcompanyh').value;
	var vaddress1h=document.getElementById('_daddress1h').value;
	var vaddress2h=document.getElementById('_daddress2h').value;
	var vcityh=document.getElementById('_dcityh').value;
	var vstateh=document.getElementById('_dstateh').value;
	var vzip5h=document.getElementById('_dzip5h').value;
	var vzip4h=document.getElementById('_dzip4h').value;
	var vhphoneh=document.getElementById('_dhphoneh').value;
	var vemailh=document.getElementById('_demailh').value;
	var vprefixh=document.getElementById('_dprefixh').value;
	var vprefix=document.getElementById('_dprefix').value;
	
	var vid=document.getElementById('_id').value;
	var vbadmsg='';
	
	var cbs = document.getElementsByTagName("INPUT");
	var checked = false;
	var vdonationid='0';
	
	for(var i = 0;i < cbs.length; i++){
					if(cbs[i].type == "radio" && cbs[i].name == "_donationid" && cbs[i].checked == true){
										vdonationid=cbs[i].value;
					}
	}	
	if(vdonationid<1){
		vbadmsg=vbadmsg+'\nSelect a donation level';			
	}
	var 	vrpaymenttype='';
	
	if(vdate.length==0||vdate==''){
		vbadmsg=vbadmsg+'\nEnter a donation date';
		submitok = false;
	}
	if(vamount.length==0||vamount==''){
		vbadmsg=vbadmsg+'\nEnter a donation amount';
		submitok = false;
	}else{
		if(IsNumeric(vamount)==false){
			vbadmsg=vbadmsg+'\nInvalid charater in donation amount, use only numbers and a decimal point. ';
		submitok = false;
		
		}
	}
								
	if(vfname.length==0||vfname==''){
		vbadmsg=vbadmsg+'\nEnter a first name';
		submitok = false;
	}
	if(vlname.length==0||vlname==''){
		vbadmsg=vbadmsg+'\nEnter a last name';
		submitok = false;
	}
	if(vaddress1.length==0||vaddress1==''){
		vbadmsg=vbadmsg+'\nEnter an address';
		submitok = false;
	}
	if(vzip5.length<5){
		vbadmsg=vbadmsg+'\nEnter an valid zip code';
		submitok = false;
	}
	
	
	if(vbadmsg.length>0){
		alert(vbadmsg);
		return false;
	}else{
	   var cardNumber = document.getElementById('_creditCardNumber').value;
	   var cardType = document.getElementById('_ccpaymentid').value;
	   var cardMonth = document.getElementById('_expdate_month').value;
	   var cardYear = document.getElementById('_expdate_year').value;
	   var CVNnum = document.getElementById('_cvv2Number').value;
	    if(validateCard(cardNumber,cardType,cardMonth,cardYear,CVNnum)){
			 return true;}
			 else{
				 return false;
			 }
		  }
}

function mod10( cardNumber ) { // LUHN Formula for validation of credit card numbers.
	var ar = new Array( cardNumber.length );
	var i = 0,sum = 0;
    	for( i = 0; i < cardNumber.length; ++i ) {
    		ar[i] = parseInt(cardNumber.charAt(i));
    	}
    	for( i = ar.length -2; i >= 0; i-=2 ) { // you have to start from the right, and work back.
    		ar[i] *= 2;							 // every second digit starting with the right most (check digit)
    		if( ar[i] > 9 ) ar[i]-=9;			 // will be doubled, and summed with the skipped digits.
    	}										 // if the double digit is > 9, ADD those individual digits together 


        	for( i = 0; i < ar.length; ++i ) {
        		sum += ar[i];						 // if the sum is divisible by 10 mod10 succeeds
        	}
        	return (((sum%10)==0)?true:false);	 	
}
function expired( month, year ) {
        	var now = new Date();							// this function is designed to be Y2K compliant.
        	var expiresIn = new Date(year,month,0,0,0);		// create an expired on date object with valid thru expiration date
        	expiresIn.setMonth(expiresIn.getMonth()+1);		// adjust the month, to first day, hour, minute & second of expired month
        	if( now.getTime() < expiresIn.getTime() ) return false;
        	return true;									// then we get the miliseconds, and do a long integer comparison
}
function validateCard(cardNumber,cardType,cardMonth,cardYear,CVN) {
	if( CVN.length == 0 ) {						//most of these checks are self explanitory
					alert("Please enter a valid Card Verification Number.");
					return false;				
	}
	if( cardNumber.length == 0 ) {						//most of these checks are self explanitory
					alert("Please enter a valid card number.");
        		return false;				
	}
	for( var i = 0; i < cardNumber.length; ++i ) {		// make sure the number is all digits.. (by design)
        		var c = cardNumber.charAt(i);
						if( c < '0' || c > '9' ) {
            			alert("Please enter a valid card number. Use only digits. do not use spaces or hyphens.");
            			return false;
            }
	}
	var length = cardNumber.length;			//perform card specific length and prefix tests
	switch( cardType ) {
		case '4':
				if( length != 15 ) {
                    				alert("Please enter a valid American Express Card number.");
                    				return false;
				}
				var prefix = parseInt( cardNumber.substring(0,2));
				if( prefix != 34 && prefix != 37 ) {
                        				alert("Please enter a valid American Express Card number.");
                        				return false;
				}
        break;
		case '6':
				if( length != 16 ) {
                            				alert("Please enter a valid Discover Card number.");
                            				return false;
				}
				var prefix = parseInt( cardNumber.substring(0,4));
				if( prefix != 6011 ) {
                                				alert("Please enter a valid Discover Card number.");
                                				return false;
				}
				break;
		case '3':
					if( length != 16 ) {
                                    				alert("Please enter a valid MasterCard number.");
                                    				return false;
					}
					var prefix = parseInt( cardNumber.substring(0,2));
					if( prefix < 51 || prefix > 55) {
                                        				alert("Please enter a valid MasterCard Card number.");
                                        				return false;
					}
					break;
		case '2':
						if( length != 16 && length != 13 ) {
                                            				alert("Please enter a valid Visa Card number.");
                                            				return false;
						}
            var prefix = parseInt( cardNumber.substring(0,1));
						if( prefix != 4 ) {
                                                				alert("Please enter a valid Visa Card number.");
                                                				return false;
						}
            break;
		case '0':
						alert("Please choose a credit card type.");
														return false;
	}
	if( !mod10( cardNumber ) ) { 		// run the check digit algorithm
                                                		alert("Sorry! this is not a valid credit card number.");
                                                		return false;
	}
	if( expired( cardMonth, cardYear ) ) {							// check if entered date is already expired.
                                                		alert("Sorry! The expiration date you have entered would make this card invalid.");
                                                		return false;
	}
                                                	
	return true; // at this point card has not been proven to be invalid
}
function IsNumeric(sText){
    var ValidChars = "0123456789.";
    var IsNumber = true;
    var Char;
    
    
    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;
    
}
