//
//  EmerElecricianViewController.swift
//  Em-call
//
//  Created by Alex Sh on 16.02.2022.
//

import UIKit

class EmerElecricianViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
{
    var address = "Unknow address"
    var dateAndTime = "2022/02/23"
    var contact = "+1 123 112 11 22"
    var card = "**** **** **** 1234"
    
    @IBAction func butBackClick(_ sender: Any) {
        _  = self.navigationController?.popViewController( animated: true)
    }
    @IBOutlet weak var tableView: UITableView!
    
    let trackList = Track.getTrackList()
    let cellReuseIdentifier = "cell"

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier)
      tableView.rowHeight = 65
       tableView.delegate = self
       tableView.dataSource = self
    }
    
    @IBAction func BOOK__Click(_ sender: Any) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc:UIViewController
        if #available(iOS 13.0, *) {
             vc = storyboard.instantiateViewController(identifier: "BookingVK") as! VKBookingViewController
        } else {
            vc = storyboard.instantiateViewController(withIdentifier: "BookingVK")
        }
         navigationController?.pushViewController(vc, animated: true)
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        //return trackList.count
        return 1
    }
    
    func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    // Создаём константу, именнo через неё мы будем обращаться к свойствам и изменять их
    let header = view as! UITableViewHeaderFooterView
        // Установить цвет текста в label
    header.textLabel?.textColor = .black
        // Установить цвет фона для секции
    header.tintColor = UIColor.white
        // Установить шрифт и размер шрифта для label
    header.textLabel?.font = UIFont(name: "Helvetica-Regular", size: 10)
    }

    // Вызовите метод titleForHeaderInSection в TableViewController классе и добавьте в него текст
    func numberOfSections(in tableView: UITableView) -> Int {
       return 4
   }// Default is 1 if not implemented
       
    func tableView(_ tableView: UITableView, titleForHeaderInSection                                 section: Int) -> String? {
        switch section {
         case 0:
            
            return ("Work location")
         case 1:            return ("Date and Time")
         case 2:            return ("Your contacts")
         case 3:            return ("Payment")
         default:            return ("Work location")
         }     // return ("Work location")
     }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier, for: indexPath)

        let section = indexPath.section
        switch section {
        case 0:            cell.textLabel?.text = address
           //// cell.setSelected(true, animated: false)
           // cell.textLabel?.textColor = UIColor.darkGray
           // cell.textLabel?.font.pointSize = 10
              //  = UIFont(name: "Helvetica-Regular", size: 10)
           //// cell.setSelected(false, animated: false)
        case 1:            cell.textLabel?.text = dateAndTime
        case 2:            cell.textLabel?.text = contact
        case 3:            cell.textLabel?.text = card
        default:           break
        }
        
        cell.accessoryType = UITableViewCell.AccessoryType.disclosureIndicator
 
        return cell
    }
    
    // method to run when table view cell is tapped
     func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
         print("You tapped cell number \(indexPath.row).")
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let nameXibName = ["Map","Calendar"]
        let vc:UIViewController
        let section = indexPath.section
 
        switch section      //if indexPath.row == 0
        {
        case 0:
          /*   if #available(iOS 13.0, *) {
                 vc = storyboard.instantiateViewController(identifier: nameXibName[indexPath.row]) as! MapViewController
            } else {*/
                vc = storyboard.instantiateViewController(withIdentifier: nameXibName[0])
            (vc as! MapViewController).delegate = self
       // let mapController:MapViewController! = MapViewController()
        navigationController?.pushViewController(vc, animated: true)
        case 1:
                 vc = storyboard.instantiateViewController(withIdentifier: nameXibName[1])
            (vc as! CalendarViewController).delegate = self
            navigationController?.pushViewController(vc, animated: true)
        case 2:
            vc = storyboard.instantiateViewController(withIdentifier: nameXibName[1])
            (vc as! CalendarViewController).delegate = self
            navigationController?.pushViewController(vc, animated: true)
        case 3:
            vc = storyboard.instantiateViewController(withIdentifier: nameXibName[1])
            (vc as! CalendarViewController).delegate = self
            navigationController?.pushViewController(vc, animated: true)
        default:
            return
        }
     }    /*
    // MARK: - Navigation
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.        // Pass the selected object to the new view controller.
    }
    */
}

extension EmerElecricianViewController:MapViewControllerDelegate {
    func delegateClick(text:String) {
        address = text
     //   NotificationCenter.default.post(name: NSNotification.Name(rawValue: "delegateClick"), object: nil)
        tableView.reloadData()
    }
}
extension EmerElecricianViewController:CalendarViewControllerDelegate {
    func calendarDelegateClick(text:String,flagData:Int) {
 
        switch flagData {
        case 0:
            dateAndTime = text
        case 1:
            contact = text
        case 2:
            card = text
        default:
            break
        }
        tableView.reloadData()
    }
    
}
