// JavaScript Document

function showPage() {

        // Errors for each validation
        var LVErrors = 0;
        var PErrors = 0;
        var CErrors = 0;
        var totalErrors = 0;
 
       var $lastVisit = $('.date-pick').val().length;
       if ($lastVisit == 0) {
           $('.date-pick').addClass("error");
           LVErrors++;
       } else {
           $('.date-pick').removeClass("error");
           if (LVErrors > 0) {
            LVErrors--;
           }
       }

       
       // Checking to see if a perception message was provided
       var $perception = $('.Perception').val();
       if($perception == "") {  
                $('.Perception').addClass("error");
                PErrors++;
       } else {
          $('.Perception').removeClass("error");
          if (PErrors > 0) {
            PErrors--;
          }
       }
	      
   
	   // Checking to see if a radio button was checked in Comfortable
       if (!$(".comfort input:checked").val()) {
           $('.Comfortable').addClass("error");
           CErrors++;
       } else {
           $('.Comfortable').removeClass("error");
           if (CErrors > 0) {
             CErrors--;
           }
       }
       
       // Checking to see if errors are still there, if not remove error and show next page, if there are, wait for validation to pass
       totalErrors = LVErrors + PErrors + CErrors;
       if (totalErrors == 0) {
            $('.error_summary').hide();
            $('#first_set').hide();
            $('#second_set').show();
       } else {
            $('.error_summary').show();
            return false;
       }	   
	   
}
	
// Go back function
function hidePage() {
	$('#first_set').show();
	$('#second_set').hide();
}

// Submission of form
function submitForm() {
    var form = document.forms['form1'];

    var SErrors = 0;
    var $email = $('.EmailAddressRecommend').val();
    var EErrors = 0;
    var totalErrors = 0;
    
    // Checking to see if a radio button was checked in Satisfied
       if (!$(".satisfy input:checked").val()) {
           $('.Satisfied').addClass("error");
           SErrors++;
       } else {
           $('.Satisfied').removeClass("error");
           if (SErrors > 0) {
            SErrors--;
            
           }
       }
       
       if ($email == "") {
            $('.EmailAddressRecommend').removeClass("error");
       } else {
            if (!IsValidEmail($email)) {
                $('.EmailAddressRecommend').addClass("error");
                EErrors++;
            } else {
                $('.EmailAddressRecommend').removeClass("error");
                if (EErrors > 0) {
                    EErrors--;
                }
            }
       }
        
       totalErrors = SErrors + EErrors;
       if (totalErrors == 0) {
            $('.error_summary').hide();
           // $('#second_set').hide();
           // $('#first_set').hide();
           // $('#third_set').show();
            return true;
       } else {
            $('.error_summary').show();
            return false;
       }

}

function submitDiscount() {
    var $firstName = $('.FirstName').val();
    var FNErrors = 0;
    var $lastName = $('.LastName').val();
    var LNErrors = 0;
    var $middleInitial = $('.MiddleInitial').val();
    var MIErrors = 0;
    var $streetAddress = $('.StreetAddress').val();
    var SAErrors = 0;
    var $city = $('.City').val();
    var CErrors = 0;
    var $state = $('.StateProvince').val()
    var SErrors = 0;
    var $zipCode = $('.ZipPostalCode').val();
    var ZCErrors = 0;
    var $workPhone = $('.WorkPhone').val();
    var WPErrors = 0;
    var $homePhone = $('.HomePhone').val();
    var HPErrors = 0;
    var $email = $('.Email').val();
    var EErrors = 0;
    var $referredBy = $('.ReferredBy').val();
    var RBErrors = 0;
    var totalErrors = 0;
    
    if ($firstName == "") {
        $('.FirstName').addClass("error");
        FNErrors++;
    } else {
        $('.FirstName').removeClass("error");
        if (FNErrors > 0) {
            FNErrors--;
        }
    }
    
    if ($lastName == "") {
        $('.LastName').addClass("error");
        LNErrors++;
    } else {
        $('.LastName').removeClass("error");
        if (LNErrors > 0) {
            LNErrors--;
        }
    }
    
    if ($middleInitial == "") {
        $('.MiddleInitial').addClass("error");
        MIErrors++;
    } else {
        $('.MiddleInitial').removeClass("error");
        if (MIErrors > 0) {
            MIErrors--;
        }
    }

    if ($streetAddress == "") {
        $('.StreetAddress').addClass("error");
        SAErrors++;
    } else {
        $('.StreetAddress').removeClass("error");
        if (SAErrors > 0) {
            SAErrors--;
        }
    }

    if ($city == "" ) {
        $('.City').addClass("error");
        CErrors++;
    } else {
        $('.City').removeClass("error");
        if (CErrors > 0) {
            CErrors--;
        }
    }
    
    if ($state == "") {
        $('.StateProvince').addClass("error");
        SErrors++;
    } else {
        $('.StateProvince').removeClass("error");
        if (SErrors > 0) {
            SErrors--;
        }
    }
    
    if ($zipCode == "") {
        $('.ZipPostalCode').addClass("error");
        ZCErrors++;
    } else {
        if (!IsValidZip($zipCode)) {
            $('.ZipPostalCode').addClass("error");
        } else {
            $('.ZipPostalCode').removeClass("error");
             if (EErrors > 0) {
                ZCErrors--;
             }
        }       
    }    
    if ($workPhone == "") {
        $('.WorkPhone').removeClass("error");
    } else {
        if (!IsValidPhone($workPhone)) {
            $('.WorkPhone').addClass("error");
            WPErrors++;
        } else {
            $('.WorkPhone').removeClass("error");
            if (WPErrors > 0) {
                WPErrors--;
            }
        }
    }
    
    if ($homePhone == "") {
        $('.HomePhone').addClass("error");
        HPErrors++;
    } else {
        if (!IsValidPhone($homePhone)) {
            $('.HomePhone').addClass("error");
        } else {
            $('.HomePhone').removeClass("error");
            if (HPErrors > 0) {
                HPErrors--;
            }
        }
    }
   
   
    
    if ($email == "") {
        $('.Email').addClass("error");
        EErrors++;
    } else {
        if (!IsValidEmail($email)) {
            $('.Email').addClass("error");
        } else {
            $('.Email').removeClass("error");
             if (EErrors > 0) {
                EErrors--;
             }
        }       
    }    
    
    totalErrors = FNErrors + LNErrors + MIErrors + SAErrors + CErrors + SErrors + ZCErrors + WPErrors + HPErrors + EErrors + RBErrors;
    if (totalErrors > 0) {
        $('.error_summary').show();
        return false;
    } else {
        $('.error_summary').hide();
    }
    
    
}

// Submission of Appointment Request
function appointRequest() {
    var form = document.forms['form1'];
    
    var $firstName = $('.AppFirstName').val();
    var FNErrors= 0;
    var $lastName = $('.AppLastName').val();
    var LNErrors = 0;
    var $middleInitial = $('.AppMiddleInitial').val();
    var MIErrors = 0;
    var $streetAddress = $('.AppStreetAddress').val();
    var SAErrors = 0;
    var $city = $('.AppCity').val();
    var CErrors = 0;
    var $state = $('.AppState').val();
    var SPErrors = 0;
    var $zipCode = $('.AppZipCode').val();
    var ZPErrors = 0;
    var $workPhone = $('.AppWorkPhone').val();
    var WPErrors = 0;
    var $homePhone = $('.AppHomePhone').val();
    var HPErrors = 0;
    var $email = $('.AppEmail').val();
    var EErrors = 0;
	var $purpose = $('.AppAppointment').val();
	var PAErrors = 0;
	var DErrors = 0;
	var $desiredDate = $('.AppDesiredDate').val();
	var DDErrors = 0;
	var $desiredTime = $('.AppDesiredTime').val();
	var DTErrors = 0;
    var totalErrors = 0;
    
    if ($firstName == "") {
        $('.AppFirstName').addClass("error");
        FNErrors++;
    } else {
        $('.AppFirstName').removeClass("error");
        if (FNErrors > 0) {
            FNErrors--;
        }
    }
    
    if ($lastName == "") {
        $('.AppLastName').addClass("error");
        LNErrors++;
    } else {
        $('.AppLastName').removeClass("error");
        if (LNErrors > 0) {
            LNErrors--;
        }
    }
    
    if ($middleInitial == "") {
        $('.AppMiddleInitial').addClass("error");
        MIErrors++;
    } else {
        $('.AppMiddleInitial').removeClass("error");
        if (MIErrors > 0) {
            MIErrors--;
        }
    }

    if ($streetAddress == "") {
        $('.AppStreetAddress').addClass("error");
        SAErrors++;
    } else {
        $('.AppStreetAddress').removeClass("error");
        if (SAErrors > 0) {
            SAErrors--;
        }
    }
    
    if ($city == "") {
        $('.AppCity').addClass("error");
        CErrors++;
    } else {
        $('.AppCity').removeClass("error");
        if (CErrors > 0) {
            CErrors--;
        }
    }

    if ($state == "") {
        $('.AppState').addClass("error");
        SPErrors++;
    } else {
        $('.AppState').removeClass("error");
        if (SPErrors > 0) {
            SPErrors--;
        }
    }

    if ($zipCode == "") {
        $('.AppZipCode').addClass("error");
        ZPErrors++;
    } else {
        if (!IsValidZip($zipCode)) {
            $('.AppZipCode').addClass("error");
        } else {
            $('.AppZipCode').removeClass("error");
            if (ZPErrors > 0) {
                ZPErrors--;
            }
        }
    }

    if ($workPhone == "") {
        $('.AppWorkPhone').removeClass("error");
        WPErrors++;
    } else {
        if (!IsValidPhone($workPhone)) {
            $('.AppWorkPhone').addClass("error");
        } else {
            $('.AppWorkPhone').removeClass("error");
            if (WPErrors > 0) {
                WPErrors--;
            }   
        }
    }

    if ($homePhone == "") {
        $('.AppHomePhone').addClass("error");
        HPErrors++;
    } else {
        if (!IsValidPhone($homePhone)) {
            $('.AppHomePhone').addClass("error");
        } else {
            $('.AppHomePhone').removeClass("error");
            if (HPErrors > 0) {
                HPErrors--;
            }
        }
    }    
    
    if ($email == "") {
        $('.AppEmail').addClass("error");
        EErrors++;
    } else {
        if (!IsValidEmail($email)) {
            $('.AppEmail').addClass("error");
        } else {
            $('.AppEmail').removeClass("error");
             if (EErrors > 0) {
                EErrors--;
             }
        }       
    }    
	
	if ($purpose == "") {
		$('.AppAppointment').addClass("error");
		PAErrors++;
	} else {
		$('.AppAppointment').removeClass("error");
		if (PAErrors > 0) {
			PAErrors--;
		}
	}
	
	
	if (!$(".dentist input:checked").val()) {
        $('.AppDentist').addClass("error");
        DErrors++;
    } else {
        $('.AppDentist').removeClass("error");
        if (DErrors > 0) {
            DErrors--;
        }
	}

	var $desiredDate = $('.date-pick').val().length;
       if ($desiredDate == 0) {
           $('.date-pick').addClass("error");
           DDErrors++;
       } else {
           $('.date-pick').removeClass("error");
           if (DDErrors > 0) {
            DDErrors--;
           }
       }	

	if ($desiredTime == "") {
		$('.AppDesiredTime').addClass("error");
		DTErrors++;
	} else {
		$('.AppDesiredTime').removeClass("error");
		if (DTErrors > 0) {
			DTErrors--;
		}
	}
    
   
    
    totalErrors = FNErrors + LNErrors + MIErrors + SAErrors + CErrors + SPErrors + ZPErrors + HPErrors + EErrors + PAErrors + DErrors + DDErrors + DTErrors;
    if (totalErrors > 0) {
        $('.error_summary').show();
        return false;
    } else {
        $('.error_summary').hide();
    }
}

// REGEX Functions For Form Validation
function IsValidEmail(email) {
    var filter = /^([\w\-\_\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    return filter.test(email);
}

function IsValidPhone(phone) {
    var filter = /^[2-9]\d{2}-?\s?\d{3}-?\s?\d{4}$/;
    return filter.test(phone);
}

function IsValidZip(zip) {
    var filter = /^([0-9]){5}(?:-[0-9]{4})?$/;
    return filter.test(zip);
}
