var errorMsg = "<span class=\"errormsg\"><sup>*</sup></span>";

function changeCardForm() {
	// SHOW / HIDE CARD FORM ELEMENTS BASED ON SELECTIONS
	switch (document.getElementById("cardtype").value) {
		default:
			$("#cn5").show();
			$("#issuenumber").show();
			break;

		// HIDE FIFTH CARD INPUT + ISSUE NUMBER IF NOT NEEDED
		case "VISA":
		case "MC":
		case "DELTA":
		case "AMEX":
			$("#cn5").hide();
			$("#issuenumber").hide();
			break;
	}
}

$(document).ready(function() {
	// changeCardForm();
	
	// FORCE NUMERICS ON APPROPRIATE FIELDS
	$("#cn1").numeric();
	$("#cn2").numeric();
	$("#cn3").numeric();
	$("#cn4").numeric();
	$("#cn5").numeric();
	
	$("#cardissue").numeric();
	$("#cv2").numeric();
	
	// AUTOFOCUS CARD NUMBERS
	$("#cn1").keyup(function() {
		if (this.value.length == 4) {
			document.getElementById("cn2").focus();
		}
	});
	
	$("#cn2").keyup(function() {
		if (this.value.length == 4) {
			document.getElementById("cn3").focus();
		}
	});
	
	$("#cn3").keyup(function() {
		if (this.value.length == 4) {
			document.getElementById("cn4").focus();
		}
	});
	
	$("#cn4").keyup(function() {
		switch (document.getElementById("cardtype").value) {

			default:
				break;

			case "SWITCH":
			case "SOLO":
			if (this.value.length == 4) {
				document.getElementById("cn5").focus();
			}
			break;
		}
	});


	// COPY BILL NAME TO CARDHOLDER NAME
	$("#billname").keyup(function() {
		$("#cardholder").val(this.value);
	});
	
	// COPY BILLING ADDRESS, SET INPUTS TO READONLY, REMOVE BORDERS
	$("#usebilling").click(function() {
		if ($("#usebilling").attr("checked")) {
			/*
			THE EXPLANATION:
			CHAINED JQUERY EVENTS TO:
			1: COPY VALUE FROM BILLING VALUE
			2: ADD BORDERLESS CLASS
			3: SET FIELD TO READONLY
			*/
		
			$("#shipname").val("").removeClass("borderless").attr("readonly",false);
			$("#shipaddr1").val("").removeClass("borderless").attr("readonly",false);
			$("#shipaddr2").val("").removeClass("borderless").attr("readonly",false);
			$("#shiptown").val("").removeClass("borderless").attr("readonly",false);
			$("#shipcounty").val("").removeClass("borderless").attr("readonly",false);
			$("#shippostcode").val("").removeClass("borderless").attr("readonly",false);
			$("#shipcountry").val("").removeClass("borderless").attr("readonly",false);
		} else {
			$("#shipname").val($("#billname").val()).addClass("borderless").attr("readonly",true);
			$("#shipaddr1").val($("#billaddr1").val()).addClass("borderless").attr("readonly",true);
			$("#shipaddr2").val($("#billaddr2").val()).addClass("borderless").attr("readonly",true);
			$("#shiptown").val($("#billtown").val()).addClass("borderless").attr("readonly",true);
			$("#shippostcode").val($("#billpostcode").val()).addClass("borderless").attr("readonly",true);
			$("#shipcountry").val($("#billcountry").val()).addClass("borderless").attr("readonly",true);
		}
	});
	
	// ALTER CARD PAYMENT FORM DEPENDING ON CARD TYPE
	$("#cardtype").change(function() {
		changeCardForm();
	});
	

	// ON SUBMIT, VALIDATE FORM - THEN SHOW CATFISH / DISABLE SUBMIT BUTTON
	$("#checkoutform").submit(function() {
		formValidates = true;
		
		// RESET DEFAULTS
		$("span").remove(".errormsg");
		$("input").removeClass("inputerror");
		$("select").removeClass("inputerror");
		
		/*************
		 VALIDATE FORM
		 *************/
		
		// BILLING ADDRESS
			if ($("#billname").val() == "") {
				formValidates = false;
				$("#billname").addClass("inputerror").after(errorMsg);
			}

			if ($("#billaddr1").val() == "") {
				formValidates = false;
				$("#billaddr1").addClass("inputerror").after(errorMsg);
			}

			if ($("#billtown").val() == "") {
				formValidates = false;
				$("#billtown").addClass("inputerror").after(errorMsg);
			}

			if ($("#billcounty").val() == "") {
				formValidates = false;
				$("#billcounty").addClass("inputerror").after(errorMsg);
			}

			if ($("#billpostcode").val() == "") {
				formValidates = false;
				$("#billpostcode").addClass("inputerror").after(errorMsg);
			}
			
			if ($("#billcountry").val() == "") {
				formValidates = false;
				$("#billcountry").addClass("inputerror").after(errorMsg);
			}

			if (!is_email($("#billemail").val())) {
				formValidates = false;
				$("#billemail").addClass("inputerror").after(errorMsg);
			}

			if ($("#billphone").val() == "") {
				formValidates = false;
				$("#billphone").addClass("inputerror").after(errorMsg);
			}
		
		// SHIPPING ADDRESS
		if ($("#usebilling").attr("checked")) {
		
			if ($("#shipname").val() == "") {
				formValidates = false;
				$("#shipname").addClass("inputerror").after(errorMsg);
			}

			if ($("#shipaddr1").val() == "") {
				formValidates = false;
				$("#shipaddr1").addClass("inputerror").after(errorMsg);
			}

			if ($("#shiptown").val() == "") {
				formValidates = false;
				$("#shiptown").addClass("inputerror").after(errorMsg);
			}

			if ($("#shipcounty").val() == "") {
				formValidates = false;
				$("#shipcounty").addClass("inputerror").after(errorMsg);
			}

			if ($("#shippostcode").val() == "") {
				formValidates = false;
				$("#shippostcode").addClass("inputerror").after(errorMsg);
			}
			
			if ($("#shipcountry").val() == "") {
				formValidates = false;
				$("#shipcountry").addClass("inputerror").after(errorMsg);
			}
		
		}
		
		// CARD DETAILS - REMOVED DUE TO MOVING TO PAYPAL
		/*
			if (document.getElementById("cardtype").value == "") {
				formValidates = false;
				$("#cardtype").addClass("inputerror").after(errorMsg);
			}
			
			cardNumber = $("#cn1").val() + $("#cn2").val() + $("#cn3").val() + $("#cn4").val() + $("#cn5").val();

			if (!is_cardnum(cardNumber)) {
				formValidates = false;
				$("#cn1").addClass("inputerror");
				$("#cn2").addClass("inputerror");
				$("#cn3").addClass("inputerror");
				$("#cn4").addClass("inputerror");
				$("#cn5").addClass("inputerror").after(errorMsg);
			}

			if (document.getElementById("expdatemm").value == "" || document.getElementById("expdateyy").value == "") {
				formValidates = false;
				$("#expdatemm").addClass("inputerror");
				$("#expdateyy").addClass("inputerror").after(errorMsg);
			}

			if (!is_csc($("#cv2").val())) {
				formValidates = false;
				$("#cv2").addClass("inputerror").after(errorMsg);
			}

			if ($("#cardholder").val() == "") {
				formValidates = false;
				$("#cardholder").addClass("inputerror").after(errorMsg);
			}
		*/
		/*****************
		 END VALIDATE FORM
		 *****************/
		
		if (!formValidates) {
			alert("Please fill in all the fields marked with *");
						
			return false;
		} else {
			$("#submitbutton").attr("disabled",true);
			$("#submitbutton").attr("value","Please wait...");
			
			return true;
		}
		
	});
});

function toggleShip() {
	if (document.getElementById("shipaddr").style.display == "none") {
		document.getElementById("shipaddr").style.display = "inline";
	}else{
		document.getElementById("shipaddr").style.display = "none";
	}
}