// added by WCW
var check_cc = false;

String.prototype.trim = function(){
	return this.replace(/^\s+|\s+$/g,"");
}

function showCCValidation()
{
  // if(document.getElementById('00N30000002FDNv_0').checked)
  //   {
  //	 document.getElementById('ccValidWrap').style.display = 'block';
  //	 check_cc = true;
  //	 // alert('CHECKED');
  //   }
  //   else
  //   {
  //	 document.getElementById('ccValidWrap').style.display = 'none';
  //	 check_cc = false;
  //	 // alert('UNCHECKED');
  //   }
  
  if($('#00N30000002FDNv_1:checked').val() !== undefined)
  {
	$('#chequeNotice').show();
	$('#chequeNotice2').show();
  }
  else
  {
	$('#chequeNotice').hide();
	$('#chequeNotice2').hide();
  }
}

function isValidCreditCard()
{
	sel = document.getElementById("card_type");
	type = sel.options[sel.selectedIndex].value;

	ccnum = document.getElementById('card_number').value;

	// alert(type + ' - ' + ccnum);

	if (type == "Visa")
	{
		// Visa: length 16, prefix 4, dashes optional.
		var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
	}
	else if (type == "MC")
	{
		// Mastercard: length 16, prefix 51-55, dashes optional.
		var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
	}
	else if (type == "Disc")
	{
		// Discover: length 16, prefix 6011, dashes optional.
		var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
	}
	else if (type == "AmEx")
	{
		// American Express: length 15, prefix 34 or 37.
		var re = /^3[4,7]\d{13}$/;
	}
	else if (type == "Diners")
	{
		// Diners: length 14, prefix 30, 36, or 38.
		var re = /^3[0,6,8]\d{12}$/;
	}

	if (!re.test(ccnum))
	{
	  return false;
	}

	// Remove all dashes for the checksum checks to eliminate negative numbers
	ccnum = ccnum.split("-").join("");

	// Checksum ("Mod 10?)
	// Add even digits in even length strings or odd digits in odd length strings.
	var checksum = 0;

	for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2)
	{
		checksum += parseInt(ccnum.charAt(i-1));
	}

	// Analyze odd digits in even length strings or even digits in odd length strings.
	for (var i=(ccnum.length % 2) + 1; i<=ccnum.length; i+=2)
	{
		var digit = parseInt(ccnum.charAt(i-1)) * 2;
		if (digit < 10)
		{
			checksum += digit;
		}
		else
		{
			checksum += (digit-9);
		}
	}

	if ((checksum % 10) == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function changePaymentPlanOptions()
{
  //get selected index
  applying_select = document.getElementById("00N30000002FDeq");
  index = applying_select.selectedIndex;
  
  // clear payment plan select
  payment_plan_select = document.getElementById('00N30000002FDer');
  payment_plan_select.options.length = 0;
  
  // insert new options
  
  // Canadian Pardon
  if(index == 1)
  {
	payment_plan_select.options[0] = new Option('Please Select','Please Select');
	payment_plan_select.options[1] = new Option('Full Payment of $495, incl. tax','Full Payment of $425 incl. tax');
	payment_plan_select.options[2] = new Option('Three Payments of $165, incl. tax','Three payments of $165 incl. tax');
	payment_plan_select.options[3] = new Option('Five Payments of $99, incl. tax','Five payments of $99 incl. tax');
  }
  // US Entry Waiver
  else if(index == 2)
  {
	payment_plan_select.options[0] = new Option('Please Select','Please Select');
	payment_plan_select.options[1] = new Option('Full Payment of $495, incl. tax','Full Payment of $425 incl. tax');
	payment_plan_select.options[2] = new Option('Three Payments of $165, incl. tax','Three payments of $165 incl. tax');
	payment_plan_select.options[3] = new Option('Five Payments of $99, incl. tax','Five payments of $99 incl. tax');
  }
  // Pardon and Waiver
  else if(index == 3)
  {
	payment_plan_select.options[0] = new Option('Please Select','Please Select');
	payment_plan_select.options[1] = new Option('Full Payment of $900, incl. tax','Full Payment of $600 incl. tax');
	payment_plan_select.options[2] = new Option('Three Payments of $300, incl. tax','Two Payments of $300 incl. tax');
	payment_plan_select.options[3] = new Option('Five Payments of $180, incl. tax','Four Payments of $180 incl. tax');
  }
  // File Destruction
  else if(index == 4)
  {
	payment_plan_select.options[0] = new Option('Please Select','Please Select');
	payment_plan_select.options[1] = new Option('Full Payment of $200, incl. tax','Full Payment of $200 incl. tax');
	payment_plan_select.options[2] = new Option('Two Payments of $100, incl. tax','Two Payments of $100 incl. tax');
	payment_plan_select.options[3] = new Option('Four Payments of $50, incl. tax','Four Payments of $50 incl. tax');
  }
  else
  {
	payment_plan_select.options[0] = new Option('Please Select','');
  }
}

function isValidEmail(email) {
   var reg = new RegExp(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/);
   var address = email;
   var result = "";

   if(reg.exec(address) == null) {
	  result = 'Invalid Email Address\n\r';
   }
   return result;
}
function isValidPhone(phone) {
   var reg = new RegExp(/^([0-9]){3}([_\-\. ])?([0-9]){3}([_\-\. ])?([0-9]){4}$/);
   var address = phone;
   var result = "";
   if(reg.exec(address) == null) {
	  result = 'Invalid Phone Number\n\r';
   }
   return result;
}

function wcwValidate()
{
  // error flag
  var error = false;
  var valiMsg="";
  
  // get form
  form_elements = document.forms[0].elements;
  
  for(var i = 0; i < form_elements.length; i++)
  {
	// alert(form_elements[i].type);

	// highlight empty text or select-one fields
	if((form_elements[i].type == "text" || form_elements[i].type == "select-one") && form_elements[i].id != "00N30000002FDNu")
	{
	  if(check_cc)
	  {
		if(form_elements[i].value.trim() == "")
		{
		  form_elements[i].style.border = "2px solid #FF0000";

		  error = true;
		}
		else
		{
		  form_elements[i].style.border = "2px solid #00FF00";
		}
	  }
	  else if(form_elements[i].id != "card_type" && form_elements[i].id != "card_number" && form_elements[i].id != "expiry_date_m" && form_elements[i].id != "expiry_date_y")
	  {
		if(form_elements[i].value.trim() == "")
		{
		  form_elements[i].style.border = "2px solid #FF0000";

		  error = true;
		}
		else
		{
		  form_elements[i].style.border = "2px solid #00FF00";
		}
	  }
	  
	}

	//huey added these validations
	var tempMsg;
	if(form_elements[i].id == "email" )
	{
		tempMsg = isValidEmail( form_elements[i].value.trim() );
		valiMsg += tempMsg;
		if (tempMsg == ""){
		  	form_elements[i].style.border = "2px solid #00FF00";
		}else{
			form_elements[i].style.border = "2px solid #FF0000";
		}
	}

	if(form_elements[i].id == "phone")
	{
		tempMsg = isValidPhone( form_elements[i].value.trim() );
		valiMsg += tempMsg;
		if (tempMsg == ""){
		  	form_elements[i].style.border = "2px solid #00FF00";
		}else{
			form_elements[i].style.border = "2px solid #FF0000";
		}
	}

	if(form_elements[i].id == "00N30000002FDNu")
	{
		if ( form_elements[i].value.trim() != ""){
			tempMsg = isValidPhone( form_elements[i].value.trim() );
			if (tempMsg == ""){
			  	form_elements[i].style.border = "2px solid #00FF00";
			}else{
				form_elements[i].style.border = "2px solid #FF0000";
				valiMsg += '(Other Number) '+tempMsg ;
			}
		}else{
			form_elements[i].style.border = "2px solid #00FF00";
		}
	}
	 
	if(form_elements[i].id == "00N30000002FDer")
	{
		if ( form_elements[i].value.trim() == "Please Select" || form_elements[i].value.trim() == "" )
		{
			tempMsg = 'Please select a Payment Plan';

			form_elements[i].style.border = "2px solid #FF0000";

			valiMsg += tempMsg ;
		}
		else
		{
			form_elements[i].style.border = "2px solid #00FF00";
		}
	}


  }
  
  if(error)
  {
	alert("The highlighted fields can not be empty!");

	return false;
  }
  
  //huey added
  if (valiMsg != "")
  {
	alert(valiMsg);

	return false;
  
  }
  
  if(check_cc)
	{
  	if(isValidCreditCard())
  	{
	  // alert('Form Validated');

  	  return true;
	}
	else
	{
	  // highight cc field
	  document.getElementById('card_number').style.border = "2px solid #FF0000";
	  document.getElementById('expiry_date_m').style.border = "2px solid #FF0000";
	  document.getElementById('expiry_date_y').style.border = "2px solid #FF0000";
	  
	  alert('Not a valid Credit Card!');

	  return false;
	}
  }
  else
  {
	if(!document.getElementById('00N30000002FDNv_0').checked && !document.getElementById('00N30000002FDNv_1').checked)
	{
	  alert("Please Select a Payment Method");
	  
	  return false;
	}

	// alert('Form Validated');

	return true;
  }
}
