function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function openvideo(para) {
	var whi="video/"+para;
	window.open(whi,'watch','height=376,width=480,scrollbars=no,status=yes');
	}

function openvideo2(para) {
	var whi="video/"+para;
	window.open(whi,'watch','height=496,width=720,scrollbars=no,status=yes');
	}

function ckhear(formnm) {
	var ok = 'no';
	for (var m=0; m<document.forms[formnm].hear.length; m++){
		if (document.forms[formnm].hear[m].checked==true) ok='yes';
		}
	if (document.forms[formnm].hear_customer.value=='' && document.forms[formnm].hear_other.value=='' && ok=='no') {
		alert('Please indicate how you heard about us.');
		document.forms[formnm].hear_customer.focus();
		return false;
		}
	else return true;
	}

function ckbreed(formnm) {
	var fldval=document.forms[formnm].breed.selectedIndex;
	if (document.forms[formnm].breed.options[fldval].value=='' && document.forms[formnm].mixed_other.value=='') {
		alert('Please describe your mixed breed.');
		document.forms[formnm].mixed_other.focus();
		return false;
		}
	else return true;
	}

function cksFld(formnm,fld,message) {
	if (document.forms[formnm].elements[fld].selectedIndex==0) {
		alert('Please make a selection from the ' + message + ' pull-down menu.');
		document.forms[formnm].elements[fld].focus();
		return false;
		}
	else return true;
	}

function ckFld(formnm,fld,message) {
	if (document.forms[formnm].elements[fld].value=='') {
		alert(message + ' is required.');
		document.forms[formnm].elements[fld].focus();
		return false;
		}
	else return true;
	}

function ckFldOneOf3(formnm,fld1,fld2,fld3,message) {
	if ((document.forms[formnm].elements[fld1].value=='') &&
	(document.forms[formnm].elements[fld2].value=='') &&
	(document.forms[formnm].elements[fld3].value=='') ) {
		alert(message + ' is required.');
		document.forms[formnm].elements[fld1].focus();
		return false;
		}
	else return true;
	}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function ckrFld(formnm,fld,message) {
	var val = getCheckedValue(document.forms[formnm].elements[fld]);
	if (val == "") {
		document.forms[formnm].elements[fld][1].focus();
		alert('Please select ' + message + '.');
		return false;
	} else {
		//alert('Selected ' + val + '.');
		return true;
	}
	//var ok = 'no';
	//for (var m=0; m<document.forms[formnm].elements[fld].length; m++){
//		if (document.forms[formnm].elements[fld][m].checked==true) ok='yes';
//		}
//	if (ok=='no'){
//		alert('Please select ' + message + '.');
//		return false;
//		}
//	else return true;
	}

function chkPasswordMatch(formnm,fld,fld2) {
	if (document.forms[formnm].elements[fld].value != document.forms[formnm].elements[fld2].value) {
		alert('Passwords do not match.');
		document.forms[formnm].elements[fld].focus();
		return false;
		}
	else return true;
	}

function chkPhone(formnm,fld,message)
{
	var phone = document.forms[formnm].elements[fld].value;
	if (phone != "") {
		// Get rid of non-numerics
		phone = phone.replace(/[^0-9]+/g,"");
		// If not 10 digits, alert user
		if (phone.length != 10) {
			alert(message + ' needs to be 10 digits.');
			document.forms[formnm].elements[fld].focus();
			return false;
		}
		// Reformat phone
		document.forms[formnm].elements[fld].value = phone.replace(/(...)(...)(....)/,"$1-$2-$3");
	}
	return true;
	}

function ckForm() {
	if (ckFld('createacc','emailaddr','Email Address') && 
	ckFld('createacc','password','Password') && 
	ckFld('createacc','password2','Retype password') && 
	chkPasswordMatch('createacc','password','password2') && 
	ckFld('createacc','firstname1','Parent 1 First Name') && 
	ckFld('createacc','lastname1','Parent 1 Last Name') && 
	ckFld('createacc','addrstnum1','Parent 1 Address Number') && 
	ckFld('createacc','addrst1','Parent 1 Address Street') && 
	ckFld('createacc','city1','Parent 1 City') && 
	ckFld('createacc','state1','Parent 1 State') && 
	ckFld('createacc','zip1','Parent 1 Zip Code') && 
	chkPhone('createacc','homephone1','Home Phone of first parent') &&
	chkPhone('createacc','workphone1','Work Phone of first parent') &&
	chkPhone('createacc','cellphone1','Cell Phone of first parent') &&
	chkPhone('createacc','fax1','Fax of first parent') &&
	ckFldOneOf3('createacc','homephone1','workphone1','cellphone1','One of Home Phone, Work Phone, Cell Phone ') && 
	chkPhone('createacc','homephone2','Home Phone of second parent') &&
	chkPhone('createacc','workphone2','Work Phone of second parent') &&
	chkPhone('createacc','cellphone2','Cell Phone of second parent') &&
	chkPhone('createacc','fax2','Fax of second parent') &&
	ckrFld('createacc','doorman','whether you have a doorman') &&
	chkPhone('createacc','building_phone','Building Phone') &&
	ckFld('createacc','emergency_namefrst','Emergency First Name') && 
	ckFld('createacc','emergency_namelast','Emergency Last Name') && 
	ckFld('createacc','emergency_phone','Emergency Phone') && 
	chkPhone('createacc','emergency_phone','Emergency Contact Phone Number') &&
	ckFld('createacc','petname','Pet Name') && 
	cksFld('createacc','breed','Breed') && 
	ckbreed('createacc') && 
	ckrFld('createacc','gender','a Gender') &&
	ckrFld('createacc','spayed','whether pet is spayed/neutered') &&
	chkPhone('createacc','vet_phone','Vet Phone Number') &&
	ckFld('createacc','dob','DOB') &&
	ckFld('createacc','ccnum','Credit Card Number') &&
	ckFld('createacc','cctype','Credit Card Type') &&
	ckFld('createacc','ccexpmonth','Credit Card Expiration Month') &&
	ckFld('createacc','ccexpyear','Credit Card Expiration Year') &&
	ckFld('createacc','cvv','CVV') &&
	ckFld('createacc','ccname','Credit Card Full Name on Account') &&
	ckFld('createacc','cczip','Credit Card Billing 5-digit Zip Code') &&
	ckFld('createacc','ccaddrnum','Credit Card Billing Address Street Number')

	) return true;
	else return false;
	}

function ckRefer() {
	if (ckFld('referafriend','first_name_friend','First Name of Friend') && ckFld('referafriend','last_name_friend','Last Name of Friend') && ckFld('referafriend','email_friend','Email Address of Friend') && ckFld('referafriend','first_name_referrer','Your First Name') && ckFld('referafriend','last_name_referrer','Your Last Name') && ckFld('referafriend','email_referrer','Your Email Address')) return true;
	else return false;
	}

/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: David Leppek :: https://www.azcode.com/Mod10

Basically, the alorithum takes each digit, from right to left and muliplies each second
digit by two. If the multiple is two-digits long (i.e.: 6 * 2 = 12) the two digits of
the multiple are then added together for a new number (1 + 2 = 3). You then add up the 
string of numbers, both unaltered and new values and get a total sum. This sum is then
divided by 10 and the remainder should be zero if it is a valid credit card. Hense the
name Mod 10 or Modulus 10. */
function Mod10(ccNumb) {  // v2.0
var valid = "0123456789"  // Valid digits in a credit card number
var len = ccNumb.length;  // The length of the submitted cc number
var iCCN = parseInt(ccNumb);  // integer of ccNumb
var sCCN = ccNumb.toString();  // string of ccNumb
sCCN = sCCN.replace (/^\s+|\s+$/g,'');  // strip spaces
var iTotal = 0;  // integer total set at zero
var bNum = true;  // by default assume it is a number
var bResult = false;  // by default assume it is NOT a valid cc
var temp;  // temp variable for parsing string
var calc;  // used for calculation of each digit

// Determine if the ccNumb is in fact all numbers
for (var j=0; j<len; j++) {
  temp = "" + sCCN.substring(j, j+1);
  if (valid.indexOf(temp) == "-1"){bNum = false;}
}

// if it is NOT a number, you can either alert to the fact, or just pass a failure
if(!bNum){
  /*alert("Not a Number");*/bResult = false;
}

// Determine if it is the proper length 
if((len == 0)&&(bResult)){  // nothing, field is blank AND passed above # check
  bResult = false;
} else{  // ccNumb is a number and the proper length - let's see if it is a valid card number
  if(len >= 15){  // 15 or 16 for Amex or V/MC
    for(var i=len;i>0;i--){  // LOOP throught the digits of the card
      calc = parseInt(iCCN) % 10;  // right most digit
      calc = parseInt(calc);  // assure it is an integer
      iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
      i--;  // decrement the count - move to the next digit in the card
      iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
      calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
      calc = calc *2;                                 // multiply the digit by two
      // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
      // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
      switch(calc){
        case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
        case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
        case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
        case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
        case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
        default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
      }                                               
    iCCN = iCCN / 10;  // subtracts right most digit from ccNum
    iTotal += calc;  // running total of the card number as we loop
  }  // END OF LOOP
  if ((iTotal%10)==0){  // check to see if the sum Mod 10 is zero
    bResult = true;  // This IS (or could be) a valid credit card number.
  } else {
    bResult = false;  // This could NOT be a valid credit card number
    }
  }
}
// change alert to on-page display or other indication as needed.
if(!bResult){
  alert("Credit Card Number is not valid");
}
  return bResult; // Return the results
}


