function changeAddress(pVal) {
	if(pVal == "0") {
		$("#new-address-form").hide();
		disableNewAddress();
	}
	else {
		$("#new-address-form").show();
		enableNewAddress();
	}
}

$(document).ready(function() {

//initRotation(); // initiate image rotator

	disableNewAddress();
	var dt = new Date();
	var currentYear = dt.getFullYear();
	var years = $("#expiryYear").html();;
	for(var a = currentYear ; a < currentYear + 10 ; a++) {
		years += '<option value="' + a + '">' + a + '</option>';
	}
	$("#expiryYear").html(years);
	
    $("input:text, textarea, input:password").each(function(){
        if(this.value == '') {
            this.value = this.title;
        }
    });
    $("input:text, textarea, input:password").focus(function(){
        if(this.value == this.title) {
            this.value = '';
        }
        $(this).removeClass("error-input");
        $(this).addClass("valid-input");
    });
    $("input:text, textarea, input:password").blur(function(){
        if(this.value == '') {
            this.value = this.title;
            $(this).removeClass("valid-input");
        }
        else {
        	$(this).removeClass("error-input");
        }
    });

    $("select").focus(function(){
    	this.className = "valid-input";
    });
    $("select").blur(function(){
        if(this.value != this.title) {
        }
        else {
        	this.style.color = "#999999";
        	$(this).removeClass("valid-input");
        }
    });

    
    var errorContainer = $("#error");
	$("#formTk").validate({
		focusInvalid: false,
		rules : {
			firstName : {
				required: true,
				selectNone: true
			},
			lastName : {
				required: true,
				selectNone: true
			},
			email : {
				required: true,
				email: true,
				selectNone: true
			},
			addressLine1 : {
				required: true,
				selectNone: true
			},
			city : {
				required: true,
				selectNone: true
			},
			state : {
				required: true,
				selectNone: true
			},
			zip : {
				required: true,
				selectNone: true,
				minlength: 5,
				maxlength: 5,
				digits: true
			},
			phone : {
				required: true,
				selectNone: true,
				minlength: 10,
				maxlength: 10
			},
			cardType : {
				required: true,
				selectNone: true
			},
			cardNumber : {
				creditcard2: function(){ return $('#cardType').val(); }
			},
			expiryYear : {
				required: true,
				selectNone: true
			},
			expiryMonth : {
        		required: true,
				selectNone: true
	        },
	        ccv : {
	            required: true,
	            minlength: function(element) {
					if($('#cardType').val() == "AmEx")
						return 4;
					else
						return 3;
			 	 },
	            maxlength: function(element) {
					if($('#cardType').val() == "AmEx")
						return 4;
					else
						return 3;
			 	 }
				,
	            digits: true
	        },
  			cardFirstName : {
   			 	required: true,
   			 	selectNone: true
   		 	},
   		 	cardLastName : {
   			 	required: true,
   			 	selectNone: true
   		 	},
   		 	
			newAddressLine1 : {
				required: true,
				selectNone: true
			},
			newCity : {
				required: true,
				selectNone: true
			},
			newState : {
				required: true,
				selectNone: true
			},
			newZip : {
				required: true,
				selectNone: true,
				minlength: 5,
				maxlength: 5,
				digits: true
			},	        
   			newPhone : {
				required: true,
				selectNone: true,
				minlength: 10,
				maxlength: 10
			},
   			iAgree : {
	        	required: true
	        }
	        
	}, 
		messages : {
			firstName : {
				required: "Please enter First Name",
				selectNone: "Please enter First Name"
			},
			lastName : {
				required: "Please enter Last Name",
				selectNone: "Please enter Last Name"
			},	
			email : {
				required: "Please enter Email",
				email: "Please enter a valid Email"
			},
			addressLine1 : {
				required: "Please enter Address Line 1",
				selectNone: "Please enter Address Line 1"
			},
			city : {
				required: "Please enter City",
				selectNone: "Please enter City"
			},		
			state : {
				required: "Please select State",
				selectNone: "Please select State"
			},
			zip : {
				required: "Please enter Zip",
				selectNone: "Please enter Zip",
				maxlength: "Please enter a valid Zip",
				minlength: "Please enter a valid Zip",
				digits: "Please enter a valid Zip"
			},
			phone : {
				required: "Please enter Phone",
				selectNone: "Please enter Phone",
				maxlength: "Please enter a valid Phone, Max. 10 Digits",
				minlength: "Please enter a valid Phone, Min. 10 Digits"
			},
			cardType : {
				required: "Please select Type of Card",
				selectNone: "Please select Type of Card"
				
			},
			cardNumber : {
				creditcard2: "Please enter a valid Card Number"
			},
			expiryMonth : {
				required: "Please select your card's expiration month",
				selectNone: "Please select your card's expiration month",
				creditMonth: "Please select your card's expiration month"
			},
			expiryYear : {
				required: "Please select your card's expiration year",
				selectNone: "Please select your card's expiration year",
				creditYear: "Please select your card's expiration year"
			},
			ccv : {
				required: "Please enter card verification number",
				minlength: "Please enter card verification number",
				maxlength: "Please enter card verification number"
			},
			
			cardFirstName : {
				required: "Please enter First Name",
				selectNone: "Please enter First Name"
			},
			cardLastName : {
				required: "Please enter Last Name",
				selectNone: "Please enter Last Name"
			},
			
			newAddressLine1 : {
				required: "Please enter Address Line 1",
				selectNone: "Please enter Address Line 1"
			},
			newCity : {
				required: "Please enter City",
				selectNone: "Please enter City"
			},		
			newState : {
				required: "Please select State",
				selectNone: "Please select State"
			},
			newZip : {
				required: "Please enter Zip",
				selectNone: "Please enter Zip",
				maxlength: "Please enter a valid Zip",
				minlength: "Please enter a valid Zip",
				digits: "Please enter a valid Zip"
			},
			newPhone : {
				required: "Please enter Phone",
				selectNone: "Please enter Phone",
				maxlength: "Please enter a valid Phone, Max. 10 Digits",
				minlength: "Please enter a valid Phone, Min. 10 Digits"
			},
			iAgree : {
				required: "You must agree to the Terms of Service to place an order"
			}
			
		},
		//errorLabelContainer: errorContainer,
		
		submitHandler: function(form) {
			
		$("#_firstName").val($("#firstName").val());
		$("#_lastName").val($("#lastName").val());
		$("#_addressLine1").val($("#addressLine1").val());
		$("#_addressLine2").val($("#addressLine2").val());
		$("#_city").val($("#city").val());
		$("#_state").val($("#state").val());
		$("#_zip").val($("#zip").val());
		$("#_phone").val($("#phone").val());
		$("#_email").val($("#email").val());
		$("#_cardType").val($("#cardType").val());
		$("#_cardNumber").val($("#cardNumber").val());
		$("#_expiryMonth").val($("#expiryMonth").val());
		$("#_expiryYear").val($("#expiryYear").val());
		$("#_ccv").val($("#ccv").val());
		$("#_currentAddress").val($("#currentAddress").attr("checked"));
		$("#_newAddress").val($("#newAddress").attr("checked"));
		$("#_cardFirstName").val($("#cardFirstName").val());
		$("#_cardLastName").val($("#cardLastName").val());
		$("#_newAddressLine1").val($("#newAddressLine1").val());
		$("#_newAddressLine2").val($("#newAddressLine2").val());
		$("#_newCity").val($("#newCity").val());
		$("#_newState").val($("#newState").val());
		$("#_newZip").val($("#newZip").val());
		$("#_newPhone").val($("#newPhone").val());
		$("#_iAgree").val($("#iAgree").val());
			
		checkUser();
		}

	});

	$("#currentAddress").click(function() {
		  disableNewAddress();
	});

	$("#newAddress").click(function() {
		  enableNewAddress();
	});
	
	jQuery.validator.addMethod("creditMonth", function(value, element, param) {
	    var curdate = new Date();
	    var month = curdate.getMonth() + 1;
	    var year = curdate.getFullYear();
	    if($(param).val() > year)
	      return true;
	    else { 
	      if ($(param).val() == year) return (value >= month);
	      else return false;
	    }
	});

	jQuery.validator.addMethod("requires", function(value, element, param) {
	  return ($(param).val() != '');
	});
	
	jQuery.validator.addMethod("selectNone",
			  function(value, element) {
			    if (
			    	element.value == "First Name" || 
			    	element.value == "Last Name" || 
			    	element.value == "Address Line1" ||
			    	element.value == "Address Line2" ||
			    	element.value == "City" ||
			    	element.value == "State" ||
			    	element.value == "Type of Card" ||
			    	element.value == "Card Number" ||
			    	element.value == "Month" ||
			    	element.value == "Year"
			       )  return false; else return true;
			  }
	);

	$("#showOptions").fancybox({
		frameWidth: 660,
		frameHeight: 480,
		hideOnContentClick: false
	});
	
	$("#checkUserLink").fancybox({
		frameWidth: 250,
		frameHeight: 200,
		hideOnContentClick: false
	});	 
	
	$("#cardType").blur(function() {
  		$("#ccv").valid();
	});

	
});

/*This function is no longer required. Test thoroughly and delete - in order to avoid dead code*/

function addRemove(pItem, pValue,pTotal) {
	total = pTotal;
	if(pItem == "proBundleId") {
		var proBundle = document.formTkFinal[1].proBundle.checked;
		if(proBundle) {
			total += pValue;
		}
		else
			total -= pValue;
	}
	if(pItem == "goldBundleId") {
		var goldBundle = document.formTkFinal[1].goldBundle.checked;
		if(goldBundle) {
			total += pValue;
		}
		else
			total -= pValue;
	}	
	if(pItem == "platinumBundleId") {
		var platinumBundle = document.formTkFinal[1].platinumBundle.checked;
		if(platinumBundle) {
			total += pValue;
		}
		else
			total -= pValue;
	}	
	$(".totalAmountField").val(total);
	
}

function noThanks1(shippingValue){ 
	$(".totalAmountField").val(shippingValue);
	document.forms[1].submit();
}

function checkUser() {
	$("#checkUserLink").click();
	$.ajax({
	    url: 'index.php?page=process&action=initial_check&' + 'email=' + $("#email") .val()+ '&cardNumber=' + $("#cardNumber") .val()+ '&ccv=' + $("#ccv") .val()+ '&expiryMonth=' + $("#expiryMonth") .val()+ '&expiryYear=' + $("#expiryYear") .val()+ '&firstName=' + $("#firstName") .val()+ '&lastName=' + $("#lastName") .val()+ '&trialKitProduct=' + $("input[@name='trialKitProduct']:checked").val(),
	    type: 'GET',
	    error: function(){
	        alert('Error loading');
	    },
	    success: function(value){
	    	if(value == "email") {
	    		$("#fancy_div").html("<div style='color:#000000; font-size:16px; padding:20px;'>We're sorry, but customers who have already placed an order are not eligible to order a kit. <br><br><p align='center'><a href='#' onclick='$(\"#fancy_close\").click();return false;'>Close</a></p></div>")
				//$("#checkUserLink").click();
	    	}
	    	else if(value == "cc"){
	    		$("#fancy_div").html("<div style='color:#000000; font-size:16px; padding:20px;'>We're sorry, but we were unable to authenticate the credit card you entered. Please make sure you have entered the credit card information correctly.<br><br><p align='center'><a href='#' onclick='$(\"#fancy_close\").click();return false;'>Close</a></p></div>");	    	
	    	} else if(value=="true"){
				document.formTk.submit();
	    		//$("#upsellLink").click();
	    	} else {
	    		$("#fancy_div").html("<div style='color:#000000; font-size:16px; padding:20px;'>An unexpected error occured while trying to process the request. Please try again after some time. <p align='center'><a href='#' onclick='$(\"#fancy_close\").click();return false;'>Close</a></p></div>");	        
        }
	    }
	});
}

function disableNewAddress() {
	$("#cardFirstName").attr('disabled', true);
	$("#cardLastName").attr('disabled', true);
	$("#newAddressLine1").attr('disabled', true);
	$("#newAddressLine2").attr('disabled', true);
	$("#newCity").attr('disabled', true);
	$("#newState").attr('disabled', true);
	$("#newZip").attr('disabled', true);
	$("#newPhone").attr('disabled', true);
}

function enableNewAddress() {
	$("#cardFirstName").attr('disabled', false);
	$("#cardLastName").attr('disabled', false);
	$("#newAddressLine1").attr('disabled', false);
	$("#newAddressLine2").attr('disabled', false);
	$("#newCity").attr('disabled', false);
	$("#newState").attr('disabled', false);
	$("#newZip").attr('disabled', false);
	$("#newPhone").attr('disabled', false);
}


