package pwa_creditfair;

import java.util.List;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class pwa_secondform extends pwa_config {
	public void personaldetails() throws InterruptedException {
		Actions actions = new Actions(driver);
		WebDriverWait wait = new WebDriverWait(driver, 5000);
		Scanner console = new Scanner(System.in);
		int applicant_gender = Integer.parseInt(obj.getProperty("gender"));
		String pan_no = obj.getProperty("pan");
		String date_day = obj.getProperty("day");
		String date_month = obj.getProperty("month");
		String date_year = obj.getProperty("year");
		String applicant_email = obj.getProperty("email");
		driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[1]/main/div[3]/div/div[3]/div[1]/div/div/div"))
				.click();
		driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
		List<WebElement> gender = driver.findElements(By.xpath("//*[@id=\"menu-gender\"]/div[2]/ul/li"));
		gender.get(applicant_gender).click();
		driver.findElement(By.id("pan")).sendKeys(pan_no);
		driver.findElement(
				By.xpath("//*[@id=\"app\"]/div/div[1]/div[1]/main/div[3]/div/div[3]/div[3]/span/div/div/input"))
				.click();
		System.out.println(date_day);
		System.out.println(date_month);
		Boolean datenotfound = true;
		System.out.println(date_year);
		Thread.sleep(5000);

		WebElement moveonmenu = driver.findElement(By.xpath(
				".//div[contains(@class,'rc-calendar-picker rc-calendar-picker-placement-bottomLeft')]/descendant::div[contains(@class,'rc-calendar')]/descendant::div[contains(@class,'rc-calendar-panel')]/descendant::div[contains(@class,'rc-calendar-date-panel')]/descendant::div[contains(@class,'rc-calendar-header')]/descendant::a[contains(@class,'rc-calendar-prev-year-btn')]"));

		actions.moveToElement(moveonmenu).moveToElement(driver.findElement(By.xpath(
				".//div[contains(@class,'rc-calendar-picker rc-calendar-picker-placement-bottomLeft')]/descendant::div[contains(@class,'rc-calendar')]/descendant::div[contains(@class,'rc-calendar-panel')]/descendant::div[contains(@class,'rc-calendar-date-panel')]/descendant::div[contains(@class,'rc-calendar-header')]/descendant::a[contains(@class,'rc-calendar-prev-year-btn')]")))
				.click().perform();
		Thread.sleep(1000);

		while (datenotfound) {

			List<WebElement> enableDate = driver.findElements(By.xpath(
					".//div[contains(@class,'rc-calendar-picker rc-calendar-picker-placement-bottomLeft')]/descendant::div[contains(@class,'rc-calendar')]/descendant::div[contains(@class,'rc-calendar-panel')]/descendant::div[contains(@class,'rc-calendar-date-panel')]/descendant::div[contains(@class,'rc-calendar-body')]/descendant::td[contains(@class,'rc-calendar-cell')]/descendant::div[contains(@class,'rc-calendar-date')]"));

			String months = driver.findElement(By.xpath(
					".//div[contains(@class,'rc-calendar-picker rc-calendar-picker-placement-bottomLeft')]/descendant::div[contains(@class,'rc-calendar')]/descendant::div[contains(@class,'rc-calendar-panel')]/descendant::div[contains(@class,'rc-calendar-date-panel')]/descendant::div[contains(@class,'rc-calendar-header')]/descendant::span[contains(@class,'rc-calendar-my-select')]/descendant::a[contains(@class,'rc-calendar-month-select')]"))
					.getText();

			String years = driver.findElement(By.xpath(
					".//div[contains(@class,'rc-calendar-picker rc-calendar-picker-placement-bottomLeft')]/descendant::div[contains(@class,'rc-calendar')]/descendant::div[contains(@class,'rc-calendar-panel')]/descendant::div[contains(@class,'rc-calendar-date-panel')]/descendant::div[contains(@class,'rc-calendar-header')]/descendant::span[contains(@class,'rc-calendar-my-select')]/descendant::a[contains(@class,'rc-calendar-year-select')]"))
					.getText();

			// If date match with input then goes to this loop.
			if (months.equals(date_month) && years.equals(date_year))

			{

				for (WebElement birthdate : enableDate) {

					String birthdate_select = birthdate.getText();
					if (birthdate_select.equals(date_day)) {
						birthdate.click();
						break;
					}

				}
				datenotfound = false;
			}
			// If date not match with input then goes to this loop.
			else {
				driver.findElement(By.xpath(
						".//div[contains(@class,'rc-calendar-picker rc-calendar-picker-placement-bottomLeft')]/descendant::div[contains(@class,'rc-calendar')]/descendant::div[contains(@class,'rc-calendar-panel')]/descendant::div[contains(@class,'rc-calendar-date-panel')]/descendant::div[contains(@class,'rc-calendar-header')]/descendant::a[contains(@class,'rc-calendar-prev-month-btn')]"))
						.click();

			}

		}
		driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
		driver.findElement(By.id("email")).sendKeys(applicant_email);
		driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[1]/main/div[3]/div/div[3]/div[5]/button")).click();

	}
}
