//
//  RecipientInformationVC.swift
//  XWProject
//
//  Created by Sweet on 2020/12/9.
//  Copyright © 2020 yangwang. All rights reserved.
//

import UIKit
import RxCocoa
import RxSwift
import IQKeyboardManager
class RecipientInformationVC: YYViewController {
				var addressFomrData = [String]()
				/// 复现的model
				//    var infoModel = RecipientInfomationModel()
				var orderType = BehaviorRelay<OrderType>.init(value: .cityLogistics)
				var lon = ""
				var lat = ""
				var endLon = ""
				var endLat = ""
				var complentBlock:((RecipientInfomationModel,LogisticsModel)->())?
				var model:RecipientInfomationModel?
				var startAddressModel:AddressModelInfo?


				@IBOutlet weak var name_tf: UITextField!
				@IBOutlet weak var phoneInputView: PhoneInputView!

				//    @IBOutlet weak var address_tf: UITextField!
				///
				@IBOutlet weak var addressDeatil_tf: UITextField!

				@IBOutlet weak var label_name: UILabel!
				//    @IBOutlet weak var label_distrct: UILabel!
				@IBOutlet weak var label_address: UILabel!
				@IBOutlet weak var label_phone: UILabel!
				@IBOutlet weak var btn_submit: UIButton!

    /// 区号
    let areaCode = BehaviorRelay<String>(value: "")
				let viewModel = LositcsViewModel()
				//    @IBOutlet weak var customTextView: UIView!

				//    var customText:CustomTextField?
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = #colorLiteral(red: 0.9529411765, green: 0.9568627451, blue: 0.9607843137, alpha: 1)
        title = localized("收件人信息")
        //        address_tf.delegate = self
        name_tf.delegate = self
        
        label_name.text = localized("姓名")
        //        label_distrct.text = localized("所在地区")
        label_address.text = localized("地址")
        label_phone.text = localized("手机号")
        
        name_tf.placeholder = localized("请填写姓名")
        phoneInputView.placeholderText = localized("请填写手机号")
        //        address_tf.placeholder = localized("请选择所在地区")
        addressDeatil_tf.placeholder = localized("填写详细地址")
        addressDeatil_tf.delegate = self
        
        btn_submit.setTitle(localized("确认信息"), for: .normal)
        
        //        constrainsTextInputLength(length: 11, textField: phone_tf).disposed(by: disposeBag)
        viewModel.startLonLat.accept("\(lon),\(lat)")
        viewModel.type.accept(orderType.value)
        addressDeatil_tf.placeholder = localized("点击输入地址")

        
        
        guard let model = self.model else {
            //            customText = CustomTextField(frame: customTextView.bounds, placeholder:"请填写街道、楼牌号等", clear: false, leftView: nil, fontSize: 14, withContent: "")
            //            customTextView.addSubview(customText!)
            return
        }
        //        }
        //        customText = CustomTextField(frame: customTextView.bounds, placeholder:"" , clear: false, leftView: nil, fontSize: 14, withContent: model.addressDeatil)
        //        customTextView.addSubview(customText!)
        //        address_tf.text = model.address
        name_tf.text = model.name
        phoneInputView.phoneTextField.text = model.phone
        addressDeatil_tf?.text = model.addressDeatil
        addressFomrData = model.addressFormrdate
        
        phoneInputView.areaCodeObservable
                    .map{$0.replacingOccurrences(of: "+", with: "")}
                    .bind(to: areaCode)
                    .disposed(by: disposeBag)
        
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        btn_submit.setGradientBackground()
    }
				@IBAction func sureAction(_ sender: UIButton) {
								view.endEditing(true)
								if name_tf.text!.isEmpty {
												alert(text: localized("请填写姓名"))
												return
								}
                    if phoneInputView.phoneTextField.text!.isEmpty {
												alert(text: localized("请填写正确手机号"))
												return
								}

								//        if !((startAddressModel?.city ?? "").contains(address_tf.text!)){
								//            alert(text: localized("请选择同城城市"))
								//            return
								//        }

								//        if address_tf.text!.isEmpty {
								//            alert(text: localized("请选择所在地区"))
								//            return
								//        }
								if addressDeatil_tf!.text!.isEmpty {
												alert(text: localized("请填写详细地址"))
												return
								}

//								if app.userInfo.email.isEmpty && app.loginInfo.email.isEmpty{
//												alert(popup: .double, title: localized("设置邮箱"), text: localized("请先设置邮箱"), submitTitle: nil, cancelTitle: nil) {
//																let vc = MineSettingMailVC()
//																self.yy_push(vc: vc)
//												} cancelClick: {
//
//												}
//												return
//								}

								model = RecipientInfomationModel()
								//        model?.address = address_tf.text!
								model?.name = name_tf.text!
								model?.addressDeatil = addressDeatil_tf!.text ?? ""
                                model?.phone = areaCode.value + phoneInputView.phoneTextField.text!
								model?.startLat = lat
								model?.startLon = lon
								model?.endLat = endLat
								model?.endLon = endLon
								model?.addressFormrdate = addressFomrData
								viewModel.endAddress.accept(addressDeatil_tf!.text ?? "")
								getPayMoney(model!)
				}

				private func getPayMoney(_ model:RecipientInfomationModel){
								self.complentBlock?(model,LogisticsModel())
								self.yy_pop()

				}
}
extension RecipientInformationVC:UITextFieldDelegate{
				func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
								view.endEditing(true)

								if addressDeatil_tf == textField{
												let searchAddressVC = storyBoard(name: "Home", identifier: "SearchAddressVC") as! SearchAddressVC
												searchAddressVC.origin.accept(false)
												searchAddressVC.orderType.accept(.cityLogistics)
												yy_push(vc: searchAddressVC)
												searchAddressVC.complete.delegate(on: self) { (self, arge) in
																let (model,_) = arge
																self.endLat = "\(model.lat)"
																self.endLon = "\(model.lon)"
																textField.text = model.name
												}
								}
								return true
				}
				func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
								if textField == name_tf {
												//            if let _ = textField.markedTextRange {
												//
												//            }
												let text = textField.text!

												let len = text.count + string.count - range.length

												return len<=12
								}
								return false
				}
}
