@Then("^I should see \"([^\"]*)\" in the confirmation form$")
  public void ConfirmationMessage(String Message) throws Throwable {
    System.out.println("ConfirmationMessage Assertion: " + detailPage.ThankYouMessage());

    Assert.assertTrue("No Confirmation Message", detailPage.ThankYouMessage().equals(Message));
    System.out.println(
        "Is Confirmation Message Displayed: " + detailPage.ThankYouMessage().equals(Message));
  }
  @Then("^I should see \"([^\"]*)\" as the value for the down payment$")
  public void MatchCreditScoreValue(String Message) throws Throwable {
    detailPage = new DetailPage(driver);
    String msg = Message;
    System.out.println("---------------Function called-----------------------------" + msg);

    System.out.println("ConfirmationMessage Assertion: " + detailPage.MatchCreditScore(msg));

    Assert.assertTrue("No Confirmation Message", detailPage.MatchCreditScore(msg).equals(Message));
    System.out.println(
        "Is Confirmation Message Displayed: " + detailPage.MatchCreditScore(msg).equals(Message));
  }
  @Then(
      "^I should see \"([^\"]*)\" as the title for the estimated mortgage rate module header at position 6$")
  public void MatchMessage(String Message) throws Throwable {
    String msg = Message;
    System.out.println("---------------Function called-----------------------------" + msg);

    System.out.println("ConfirmationMessage Assertion: " + detailPage.MatchMortageMessage(msg));

    Assert.assertTrue(
        "No Confirmation Message", detailPage.MatchMortageMessage(msg).equals(Message));
    System.out.println(
        "Is Confirmation Message Displayed: "
            + detailPage.MatchMortageMessage(msg).equals(Message));
  }
  @Then("^I should see \"([^\"]*)\" in the mortgage rate page$")
  public void MatchRatePageMessage(String Message) throws Throwable {
    String msg = Message;
    System.out.println("---------------Function called-----------------------------" + msg);
    detailPage = new DetailPage(driver);
    System.out.println(
        "ConfirmationMessage Assertion: " + detailPage.MatchRatePageMortageMessage(msg));

    Assert.assertTrue(
        "No Confirmation Message", detailPage.MatchRatePageMortageMessage(msg).equals(Message));
    System.out.println(
        "Is Confirmation Message Displayed: "
            + detailPage.MatchRatePageMortageMessage(msg).equals(Message));
  }
  @Then("^I see the Agent Contact Form from sticky header$")
  public void isStickyAgentFormPresent() throws Throwable {

    boolean status = detailPage.IsStickyAgentCardPresent();
    Assert.assertTrue("No Credit Repair Form", status);
    System.out.println("Is Lead Form Displayed: " + status);
  }
  @Then("^I click the View More Schools Nearby link$")
  public void I_click_the_View_More_Schools_Nearby_link_FS() throws Throwable {

    searchPage = detailPage.ClickViewMoreSchoolsLink();
    driver.manage().timeouts().pageLoadTimeout(3000, TimeUnit.SECONDS);
    System.out.println("Clicked the more schools link");
  }
  @Then("^I should see \"([^\"]*)\" as a paragraph in the bankrate disclaimer1$")
  public void MatchDisclamierSecondPara(String Message) throws Throwable {
    Thread.sleep(20000);
    String msg = Message;
    System.out.println("---------------Function called-----------------------------" + msg);
    detailPage = new DetailPage(driver);

    System.out.println(
        "ConfirmationMessage Assertion: " + detailPage.MatchDisclamierSecondPara(msg));

    Assert.assertTrue(
        "No Confirmation Message", detailPage.MatchDisclamierSecondPara(msg).equals(Message));
    System.out.println(
        "Is Confirmation Message Displayed: "
            + detailPage.MatchDisclamierSecondPara(msg).equals(Message));
  }
  @Given("I am on an FRC details page$")
  public void NavigateToFRC_UDP() throws Throwable {
    detailPage = new DetailPage(driver);
    detailPage.NavigateToFRC_UDP();

    System.out.println("Executed For Rent UDP navigation");
  }
  @And("^I click the Send button$")
  public void SubmitForm() throws Throwable {

    detailPage.ClickSubmitButton();
    System.out.println("Submitted Form");
    driver.manage().timeouts().pageLoadTimeout(3000, TimeUnit.SECONDS);
  }
  @Then("^I can see the Estimated Mortgage Rates Module$")
  public void SeeEstimateMortageRate() throws Throwable {
    detailPage = new DetailPage(driver);
    detailPage.SeeEstimateMortageRateModule();

    // detailPage.navigateToBuilderUDP();
    System.out.println("Executed Sale navigation");
  }
  @And("^Click on Update Button$")
  public void ClickUpdateButton() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickUpdateButtonObListingType();
    // System.out.println("Submitted Form");

  }
  @Then("^I scroll down couple of times$")
  public void ScrollPopertyDetailPage() throws Throwable {
    detailPage = new DetailPage(driver);
    detailPage.ScrollMortgagePopertyDetailPageUDP();

    // detailPage.navigateToBuilderUDP();
    System.out.println("Executed Sale navigation");
  }
  @Given("I am on a builders listing$")
  public void NavigateToBuilderUDP() throws Throwable {
    detailPage = new DetailPage(driver);
    detailPage.NavigateToBuilderUDP();

    // detailPage.navigateToBuilderUDP();
    System.out.println("Executed Builder UDP navigation");
  }
  @And("^I click RESIDENTIAL property type$")
  public void ClickresidentialProperty() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickresidentialPropertyType();
    // System.out.println("Submitted Form");

  }
  @Then("I see addtional property form$")
  public void AddtinalProperty() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.AddtinalPropertyform();
    // System.out.println("Submitted Form");

  }
  @And("I click contact now button on new popup$")
  public void ClickContactNowButton() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickContactNowButtonOnFRC();
    // System.out.println("Submitted Form");

  }
  @And("^Close the popup window$")
  public void ClosePopupwindow() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.CloseMilitaryPopupwindow();
    // System.out.println("Submitted Form");

  }
  @And("Click listing drop down on sale page$")
  public void ClicklistingdroponSalePage() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClicklistingdropdownonSalepage();
    // System.out.println("Submitted Form");

  }
  @And("^I click APARTMENT property type$")
  public void ClickAppartmentProperty() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickApartmentPropertyTypeType();
    // System.out.println("Submitted Form");

  }
  @And("^I click CONDOMINIUM property type$")
  public void ClickCondominiumProperty() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickCondominumPropertyType();
    // System.out.println("Submitted Form");

  }
  @And("^I click TOWNHOUSE property type$")
  public void ClickTownHouseProperty() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickTownHousePropertyType();
    // System.out.println("Submitted Form");

  }
  @Then("I drag the credit score slider all the way to the left$")
  public void DragSlider() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.DragSliderLeft();
    // System.out.println("Submitted Form");

  }
  @Then("I click the bankrate Disclaimer$")
  public void ClickDisclaimerbutton() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickBankDisclaimerlink();
    // System.out.println("Submitted Form");

  }
  @Then("^I can see the bankrate downpayment slider$")
  public void BankRateDownPayementSlider() throws Throwable {
    detailPage = new DetailPage(driver);
    detailPage.MortageBankRateDownPayementScoreSlider();

    // detailPage.navigateToBuilderUDP();
    System.out.println("Executed Sale navigation");
  }
  @And("^Click property type drop down$")
  public void PropertyTypeDrop() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.PropertyTypeDropDown();
    // System.out.println("Submitted Form");

  }
  @And("^Click senior community listing type$")
  public void ClickSeniorCommunityListing() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickSeniorCommunityListingType();
    // System.out.println("Submitted Form");

  }
  @And("^Click on Update Button on Property type dopdown$")
  public void UpdateButtononProperpty() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.UpdateButtononProperptyDropDown();
    // System.out.println("Submitted Form");

  }
  @Then("I click the bankrate See Additional Rates button$")
  public void ClickBankRateAdditiobalButton() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickBankRateAdditiobalButtonlink();
    // System.out.println("Submitted Form");

  }
  @And("^Click CORPORATE HOUSING listing type$")
  public void ClickCorporateGousingListing() throws Throwable {
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.ClickCorporateGousingListingType();
    // System.out.println("Submitted Form");

  }
  @Then("I drag the down payment slider all the way to the left$")
  public void DragDownPayementSliderLeft() throws Throwable {
    System.out.println("----right----");
    driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
    detailPage = new DetailPage(driver);
    detailPage.DragdownpayementSliderLeftShift();
    // System.out.println("Submitted Form");

  }