function showSignin(){window.location = 'https://www.upaknee.com/registration/';}
function showLogin(){window.location = 'https://www.upaknee.com/sign-in/';}
function switchToReset(){
	jQuery('#sign_in').animate({
    opacity: 0.0}, 1000, function() {
		jQuery('#sign_in').addClass('hidden');
		jQuery('#password_reset').css({ opacity: 0.0 });
		jQuery('#password_reset').removeClass('hidden');
		jQuery('#password_reset').animate({
	    opacity: 100.0}, 1000, function() {	
  		});
	});
}

function switchToSignin(){
	jQuery('#password_reset').animate({
    opacity: 0.0}, 1000, function() {
		jQuery('#password_reset').addClass('hidden');
		jQuery('#sign_in').css({ opacity: 0.0 });
		jQuery('#sign_in').removeClass('hidden');
		jQuery('#sign_in').animate({
	    opacity: 100.0}, 1000, function() {
  		});
	});
}

function validateStep12(){
	var valid = 1;
	//validateField return 0 if invalid
	//if any value is 0 the multiplication will always come out = 0
	valid = valid * validateField('step1fname');
	valid = valid * validateField('step1lname');
	valid = valid * validateField('step1email');
	valid = valid * validateField('step1password');
	valid = valid * validateField('step1password2');
	valid = valid * validatePassword(1);
	valid = valid * validatePassword(2);
	valid = valid * validateEmail()
	//this variable will be 0 if there is a problem in step 1 and 
	//at the end will determine if the login script reverts the user
	//to the first step to show missing data
	var step1 = 1 * valid;
	valid = valid * validateField('step2cname');
	valid = valid * validateField('step2address');
	valid = valid * validateField('step2city');
	valid = valid * validateProvince();
	valid = valid * validateCountry();
	valid = valid * validateField('step2postal');
	if(valid == 1){
		// serialize the output and call the ajax function
		//alert(jQuery('#register').serialize());
		//	alert(window.location.hostname);
		var url = "https://"+window.location.hostname+"/ajaxCall/signup.php";
		jQuery.post(url,jQuery('#register').serialize(),function(data){
		var result = jQuery.parseJSON(data);
		if(result.status=='failed')
		{
			jQuery("#form_msg").html("<h3 class=\"form_title\">Error Message</h3><br><input id=\"step3\" type=\"hidden\" value=\"1\">"+result.content+"<br/>")
		}
		if(result.status=='succeed')
		{
			jQuery("#form_msg").html("<h3 class=\"form_title\">Step 3 - Email Confirmation</h3><br><input id=\"step3\" type=\"hidden\" value=\"1\">"+result.content+"<br/>")
		}
		showStep3();			
		jQuery('#error_notification').addClass('hidden');
	});
	}else{
		if(step1 == 0)
		showStep1();
		jQuery('#error_notification').removeClass('hidden');
	}
}

function showStep2(){
	jQuery('#dialog_new_account_1').addClass("hidden");
	jQuery('#dialog_new_account_3').addClass("hidden");
	jQuery('#dialog_new_account_2').removeClass("hidden");
	
	var email = jQuery('#step1email').val();
	jQuery('#sent_to').html(email)
	
	var name = jQuery('#step1fname').val();
	jQuery('#user_name').html(name)
	
	jQuery('#step2').val(1);
	
	updateProgress();
}

function showStep1(){
	jQuery('#dialog_new_account_3').addClass("hidden");
	jQuery('#dialog_new_account_2').addClass("hidden");
	jQuery('#dialog_new_account_1').removeClass("hidden");
}

function showStep3(){
	jQuery('#dialog_new_account_1').addClass("hidden");
	jQuery('#dialog_new_account_2').addClass("hidden");
	jQuery('#dialog_new_account_3').removeClass("hidden");
	jQuery('#step3').val(1);
	updateProgress();
}

//individual validation for each field
function validateField(id){
	//fname
	if(jQuery('#'+id).val() == '' || jQuery('#'+id).val() == ' '){

		jQuery('#error'+id).removeClass("hidden");
		jQuery('#'+id).addClass("error");
		return 0;
	}else{
		jQuery('#error'+id).addClass("hidden");
		jQuery('#'+id).removeClass("error");
		return 1;
	}
}

function validateEmail(){
	// First, we check that there's one @ symbol, and that the lengths are right
	var filter = /^[^@]{1,64}@[^@]{1,255}$/;
	var userInput = new String(jQuery('#step1email').val());
		
	if (!filter.test(userInput)) {
		// Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
		jQuery('#errorstep1emailvalid').removeClass("hidden");
		jQuery('#step1email').addClass('error');
		return 0;

	}
	filter = /^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/;
	var inputArray = userInput.split('@'); 
	var localArray = inputArray[0].split('.');	
	
	var i = 0;
	for (i=0; i < localArray.length; i++){
		if (!filter.test(localArray[i])) {
		jQuery('#errorstep1emailvalid').removeClass("hidden");
		jQuery('#step1email').addClass('error');
		return 0;
		}
	}
	
	filter = /^\[?[0-9\.]+\]?$/;
	if (!filter.test(inputArray[1])) {
		var domainArray = inputArray[1].split('.');

		if (domainArray.length < 2) {
			// Not enough parts to domain
			jQuery('#errorstep1emailvalid').removeClass("hidden");
			jQuery('#step1email').addClass('error');
			return 0;
		}
		filter = /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/;
		for (i = 0; i < domainArray.length; i++) {

			if (!filter.test(domainArray[i])) {
				jQuery('#errorstep1emailvalid').removeClass("hidden");
				jQuery('#step1email').addClass('error');
				return 0;
			}
		}
	}

	jQuery('#errorstep1emailvalid').addClass("hidden");
	jQuery('#step1email').removeClass('error');
	return 1;
}

function hideError(){
	jQuery('#newsletterErrorNoInput').addClass("hidden");
	jQuery('#newsletterErrorInvalid').addClass("hidden");
}

function validateEmailNewsletter(){
	//if there is no input
	if (jQuery('#newsletterEmail').val() == '' || jQuery('#newsletterEmail').val() == ' '){ 
			jQuery('#newsletterErrorNoInput').removeClass("hidden");
			jQuery('#newsletterErrorInvalid').addClass("hidden");
			return 0;
	}
	else{
		
		jQuery('#newsletterErrorNoInput').addClass("hidden");
		

		// First, we check that there's one @ symbol, and that the lengths are right
	var filter = /^[^@]{1,64}@[^@]{1,255}$/;
	var userInput = new String(jQuery('#newsletterEmail').val());
		
	if (!filter.test(userInput)) {
		// Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
		jQuery('#newsletterErrorInvalid').removeClass("hidden");
		return 0;

	}
	filter = /^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/;
	var inputArray = userInput.split('@'); 
	var localArray = inputArray[0].split('.');	
	
	var i = 0;
	for (i=0; i < localArray.length; i++){
		if (!filter.test(localArray[i])) {
		jQuery('#newsletterErrorInvalid').removeClass("hidden");
		return 0;
		}
	}
	
	filter = /^\[?[0-9\.]+\]?$/;
	if (!filter.test(inputArray[1])) {
		var domainArray = inputArray[1].split('.');

		if (domainArray.length < 2) {
			// Not enough parts to domain
			jQuery('#newsletterErrorInvalid').removeClass("hidden");
			return 0;
		}
		filter = /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/;
		for (i = 0; i < domainArray.length; i++) {

			if (!filter.test(domainArray[i])) {
				jQuery('#newsletterErrorInvalid').removeClass("hidden");
				return 0;
			}
		}
	}

	jQuery('#newsletterErrorInvalid').addClass("hidden");
	jQuery('#newsletterSignup').submit();
	return 1;
	}
}

function validateCountry(){
	//if there is no input
	if (jQuery('#step2country').val() == 'US'){ 
		jQuery('#states').removeClass("hidden");
		jQuery('#states').attr('name', 'province');
		jQuery('#provinces').attr('name', 'null');
		jQuery('#provinces').addClass("hidden");
		jQuery('#province_lbl').html('State');
		jQuery('#errorstep2country').addClass('hidden');
		jQuery('#step2country').removeClass('error');
		return 1;
	}
	else if (jQuery('#step2country').val() == 'CA'){
		jQuery('#provinces').attr('name', 'province');
		jQuery('#states').attr('name', 'null');
		jQuery('#states').addClass("hidden");
		jQuery('#provinces').removeClass("hidden");
		jQuery('#province_lbl').html('Province');
		jQuery('#errorstep2country').addClass('hidden');
		jQuery('#step2country').removeClass('error');
		return 1;
	}else{
		jQuery('#errorstep2country').removeClass('hidden');
		jQuery('#errorstep2province').addClass('hidden');
		jQuery('#step2country').addClass('error');
		jQuery('#states').addClass('hidden');		
		jQuery('#provinces').addClass('hidden');
		jQuery('#province_lbl').html('&nbsp;');
		jQuery('#states').attr('name', 'null');
		jQuery('#provinces').attr('name', 'null');
		return 0;
	}
}

function validateProvince(){
	//while a country is not properly selected this field returns a valid response
	//should a country be selected wtihout provinces it will let the system go to step 3
	if(validateCountry() == 1){	
		if(jQuery('#states').val() == '' && jQuery('#provinces').val() == ''){
			jQuery('#errorstep2province').removeClass('hidden');
			jQuery('#provinces').addClass('error');
			jQuery('#states').addClass('error');
			return 0;
		}else{
			jQuery('#errorstep2province').addClass('hidden');
			jQuery('#provinces').removeClass('error');
			jQuery('#states').removeClass('error');
			return 1;
		}
	}else{
		jQuery('#errorstep2province').addClass('hidden');
		jQuery('#provinces').removeClass('error');
		jQuery('#states').removeClass('error');
		return 1;
	}
}

function validatePassword(field){
	
	//this function will return 1 if all aspects of password are valid
	var valid = 1;
	
	//if both password fields have input
	if(jQuery('#step1password').val() != '' && jQuery('#step1password2').val() != ''){
		//check if they match	
		if(jQuery('#step1password').val() != jQuery('#step1password2').val()){
			if(jQuery('#step1password').val() != '' && jQuery('#step1password2').val() != ''){
			jQuery('#errorstep1passwordmatch').removeClass("hidden");
			jQuery('#step1password').addClass('error');
			jQuery('#step1password2').addClass('error');
			valid = 0;
			}
		}else{
			jQuery('#errorstep1passwordmatch').addClass("hidden");
			jQuery('#step1password').removeClass('error');
			jQuery('#step1password2').removeClass('error');
		}
	}
	//if they do not have input
	else{
		//if its password1 validating
		if(field == 1){
			//check password 1 for input and proces
			if(jQuery('#step1password').val() == '' || jQuery('#step1password').val() == ' '){
				jQuery('#errorstep1password').removeClass("hidden");
				jQuery('#step1password').addClass('error');
				valid = 0;
			}else{
				jQuery('#errorstep1password').addClass("hidden");
				jQuery('#step1password').removeClass('error');
			}
		}else{
			if(jQuery('#step1password2').val() == '' || jQuery('#step1password2').val() == ' '){
				jQuery('#errorstep1password2').removeClass("hidden");
				jQuery('#step1password2').addClass('error');
				valid = 0;
			}else{
				jQuery('#errorstep1password2').addClass("hidden");
				jQuery('#step1password2').removeClass('error');
			}
		}
	}
	
	return valid;
}

function updateProgress(){
	var valid = 1;
	var progressBar = 65;
	if(jQuery('#step1fname').val() != ''){
		progressBar = progressBar + 22;
	}else{valid = 0}
	if(jQuery('#step1lname').val() != ''){
		progressBar = progressBar + 22;
	}else{valid = 0}
	if(jQuery('#step1email').val() != '' && validateEmail() != 0){
		progressBar = progressBar + 22;
	}else{valid = 0}
	if(jQuery('#step1password').val() != '' && validatePassword(1) != 0){
		progressBar = progressBar + 22;
	}else{valid = 0}
	if(jQuery('#step1password2').val() != '' && validatePassword(2) != 0){
		progressBar = progressBar + 22;
	}else{valid = 0}
	var anim = {width: progressBar};
	//anim["width"] = "="+progressBar;
	jQuery("#progress_bar").animate(anim, 1000, function() {
		// Animation complete.
	});
	
	var progressBar2 = 0;
	if(jQuery('#step2').val() != 0){
		progressBar2 = progressBar2 + 50;
	}else{valid = 0}
	if(jQuery('#step2cname').val() != ''){
		progressBar2 = progressBar2 + 18;
	}else{valid = 0}
	if(jQuery('#step2address').val() != ''){
		progressBar2 = progressBar2 + 18;
	}else{valid = 0}
	if(jQuery('#step2city').val() != ''){
		progressBar2 = progressBar2 + 18;
	}else{valid = 0}
	if(jQuery('#provinces').val() != '' || jQuery('#states').val() != ''){
		progressBar2 = progressBar2 + 17;
	}else{valid = 0}
	if(jQuery('#step2postal').val() != ''){
		progressBar2 = progressBar2 + 17;
	}else{valid = 0}
	if(jQuery('#step2country').val() != ''){
		progressBar2 = progressBar2 + 17;
	}else{valid = 0}
	if(jQuery('#step3').val() != 0){
		progressBar2 = progressBar2 + 60;
	}
	var anim = {width: progressBar2};
	//anim["width"] = "="+progressBar;
	jQuery("#progress_bar2").animate(anim, 1000, function() {
		// Animation complete.
	});
	
	if(valid == 1){

		jQuery('#error_notification').css('background', '#7fb83e');
		jQuery('#error_notification').html('Thank you');
	}else{
		jQuery('#error_notification').css('background', '#c71717');
		jQuery('#error_notification').html('Please correct highlighted fields');
	}
}

/*


//validate all fields at the end of step 1
function validateStep1(){
	var progressBar = 0;
	//the validate function checks all fields 

	//fname
	if(jQuery('fname').val() == ''){
		jQuery('fname_error').removeClass("hidden");
		jQuery('fname').addClass("input_error");
	}else{
		jQuery('fname_error').addClass("hidden");
		jQuery('fname').removeClass("input_error");
		progressBar = progressBar + 25;
	}
	
	//lname
	if(jQuery('lname').val() == ''){
		jQuery('lname_error').removeClass("hidden");
		jQuery('lname').addClass("input_error");
	}else{
		jQuery('lname_error').addClass("hidden");
		jQuery('lname').removeClass("input_error");
		progressBar = progressBar + 25;
	}	

	//email
	if(jQuery('email').val() == ''){
		jQuery('email_error').removeClass("hidden");
		jQuery('email').addClass("input_error");
	}else{
		jQuery('email_error').addClass("hidden");
		jQuery('email').removeClass(input_"error");
		progressBar = progressBar + 25;
	}	
	
	//password
	if(jQuery('password').val() == ''){
		jQuery('password_error').removeClass("hidden");
		jQuery('password').addClass("input_error");
	}else{
		jQuery('password_error').addClass("hidden");
		jQuery('password').removeClass("input_error");
		progressBar = progressBar + 25;
	}	
	
	//password2
	if(jQuery('password2').val() == ''){
		jQuery('password2_error').removeClass("hidden");
		jQuery('password2').addClass("input_error");
	}else{
		jQuery('password2_error').addClass("hidden");
		jQuery('password2').removeClass("input_error");
		progressBar = progressBar + 25;
	}	
	
	//password2
	if(jQuery('password2').val() != jQuery('password').val()){
		jQuery('passwordmatch_error').removeClass("hidden");
		jQuery('password2').addClass("input_error");
		jQuery('password1').addClass("input_error");
	}else{
		jQuery('passwordmatch_error').addClass("hidden");
		jQuery('password2').removeClass("input_error");
		jQuery('password1').removeClass("input_error");
		progressBar = progressBar + 25;
	}	
		
	
	//finally animate the progress bar to its proper length
	 var anim = {width: 0};
	 anim["width"] = "+="+value;
	 jQuery("#progress_bar").animate(anim, 1000, function() {
    // Animation complete.
  });
}*/

function barProgress(value){
	 var anim = {width: 0};
	 anim["width"] = "+="+value;
	 jQuery("#progress_bar").animate(anim, 1000, function() {
    // Animation complete.
  });

}

function barProgressTo(value){	
	  var anim = {width: 0};
	  anim["width"] = value;
	  $("#progress_bar").animate(anim, 1000);
}



