// payment page validation

// Hope Flies functions

function disable_amounts()
{ var obj = document.getElementById('form2')
  for (i = 0; i < obj.amount.length; i++) {obj.amount[i].disabled = true}
  obj.otheramount.disabled = true
  obj.tickets.disabled = true
}

function enable_amounts()
{ var obj = document.getElementById('form2')
  for (i = 0; i < obj.amount.length; i++) {obj.amount[i].disabled = false}
  obj.otheramount.disabled = false
}

function disable_tickets()
{ var obj = document.getElementById('form2')
  obj.tickets.disabled = true
}

function enable_tickets()
{ var obj = document.getElementById('form2')
  obj.tickets.disabled = false
}

// general payment functions

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function editField(oField, cFieldDesc, cType, lRequired) {
// oField is reference to  form field object
// cFieldDesc is description of field used in error messages
// cType is type of field for validity checking
// lRequired (true/false) to indicate required field or not

	// Value is required
	if (lRequired) {
		if (checkEmpty(oField.value)) {
			alert("Please enter value for " + cFieldDesc + "      ")
			lEditError = true
			return null
		}
	}
	
	// Field is date type
	if (cType == "Date/Time" && !checkDate(oField)) {
			alert("Please enter a valid date for " + cFieldDesc + "      ")
			lEditError = true
			return null
	}

	// Field is numeric type
	if (cType == "Numeric" && isNaN(oField.value)) {
			alert("Please enter a valid number for " + cFieldDesc + "      ")
			lEditError = true
			return null
	}

	// Field is email type
	if (cType == "Email" && !checkEmail(oField)) {
			alert("Please enter a valid " + cFieldDesc + "      ")
			lEditError = true
			return null
	}

return true
}

function checkEmpty(cValue) 
{
var j
var lEmpty = true

	// Find 1st non-blank character in value
	for (j=0; j < cValue.length; j++) {
		if (cValue.charAt(j) != " ") {lEmpty = false}
	}

return lEmpty
}

function checkDate(oField) {
	var lValid = true

	if ( isNaN(Date.parse(oField.value)) ) {
		lValid = false
	}

return lValid
}

function checkEmail(oField) 
{
	var intPosAt, intPosPoint;

	var cType
	cType = oField.type.toLowerCase()
	cType = cType.substring(0,4)

	if ((cType == "text") && (oField.value != "")) 
	{
		intPosAt = oField.value.indexOf("@");
		intPosPoint = oField.value.lastIndexOf(".");

		if (  (intPosAt < 1) || 
			  (intPosPoint < intPosAt) || 
			  (intPosPoint == (oField.value.length - 1)) || 
			  (oField.value.indexOf(" ") > -1)	
			) 
		{ return false }
	}
	return true
}

var lEditError // Set to true if edit error occurs in editField()

function editFields() {
	lEditError = false	// set to true if error occurs in editField() 
    var themessage = "Please enter the following: \n";

	var amount_choice = false;
	for (counter = 0; counter < document.form2.amount.length; counter++){
		if (document.form2.amount[counter].checked)
		amount_choice = true; 
	}

	if (!amount_choice & !document.form2.otheramount.value) { 
	   themessage = themessage + " - Donation Amount\n";
	   lEditError = true;
	}	
	
	if (!document.form2.firstname.value) { 
	   themessage = themessage + " - First Name\n";
	   lEditError = true;
	}	
	
	if (!document.form2.lastname.value) { 
	   themessage = themessage + " - Last Name\n";
	   lEditError = true;
	}	
	
	if (!document.form2.address.value) { 
	   themessage = themessage + " - Address\n";
	   lEditError = true;
	}
	
	if (!document.form2.city.value) { 
	   themessage = themessage + " - City\n";
	   lEditError = true;
	}
	
	if (!document.form2.state.value) { 
	   themessage = themessage + " - State\n";
	   lEditError = true;
	}
	
	if (!document.form2.zip.value) { 
	   themessage = themessage + " - Zip\n";
	   lEditError = true;
	}
	
	if (!document.form2.phone.value) { 
	   themessage = themessage + " - Phone Number\n";
	   lEditError = true;
	}
	
	if (!document.form2.email.value) { 
	   themessage = themessage + " - Email Address\n";
	   lEditError = true;
	}
	else if (!checkEmail(document.form2.email)) {
	   themessage = themessage + " - A valid Email Address\n";
	   lEditError = true;
	}	

	if (!document.form2.ccnumber.value) { 
	   themessage = themessage + " - Credit Card Number\n";
	   lEditError = true;
	}

//	if (!document.form2.cvv2.value) { 
//	   themessage = themessage + " - Credit Card Security Code\n";
//	   lEditError = true;
//	}
	
	if (lEditError) {
	   alert(themessage)
	   return false
	}  // Edit error - don't submit
	else {
//	   document.form2.submit();
	   return true
	}
}

function textCounter(field, countfield, maxlimit) {
  if (field.value.length > maxlimit) // if too long...trim it!
    field.value = field.value.substring(0, maxlimit);
  // otherwise, update 'characters left' counter
  else
    countfield.value = maxlimit - field.value.length;
}
