import { Component, OnInit } from '@angular/core';
import { HospitalService } from '../hospital.service';
import { Router } from '@angular/router';
import { Hospital } from '../hospital';

@Component({
  selector: 'app-register-hospital',
  templateUrl: './register-hospital.component.html',
  styleUrls: ['./register-hospital.component.scss']
})
export class RegisterHospitalComponent implements OnInit {

  hospitalData: Hospital = {
    name: '',
    //address: '',
    //building_number: '',
    //district: '',
    city: '',
    state: '',
    latitude: '',
    longitude: '',
    region: '',
  }

  constructor(private hospitalService: HospitalService,
              private _router: Router) { }

  ngOnInit() {
  }

  private valid() {
    
    var v = true

    for (let i in this.hospitalData) {
      let x = document.getElementById(i)
      if (this.hospitalData[i] === '') {
        if (x != null) {x.style.borderColor = "#ff0000"}
        else { console.log(i+" input not found")}
        v = false
      }
      else {
        if (x != null) {x.style.borderColor = "#9d9d9d"}
      }
    }
    return v
  }

  async onSubmit() {

    this.hospitalData.name = this.hospitalData.name.trim();
    //this.hospitalData.address = this.hospitalData.address.trim();
    //this.hospitalData.building_number = this.hospitalData.building_number.trim();
    //this.hospitalData.district = this.hospitalData.district.trim();
    this.hospitalData.city = this.hospitalData.city.trim();
    this.hospitalData.state = this.hospitalData.state.trim();
    this.hospitalData.latitude = this.hospitalData.latitude.trim();
    this.hospitalData.longitude = this.hospitalData.longitude.trim();
    this.hospitalData.region = this.hospitalData.region.trim();

    if (await this.valid()) {

/*
      window.alert("Nome: "+this.hospitalData.name
                  //+"\nRua: "+this.hospitalData.address
                  //+"\nNumero: "+this.hospitalData.building_number
                  //+"\nBairro: "+this.hospitalData.district
                  +"\nCidade: "+this.hospitalData.city
                  +"\nEstado: "+this.hospitalData.state
                  +"\nRegião: "+this.hospitalData.region
                  +"\nLatitude: "+this.hospitalData.latitude
                  +"\nLongitude: "+this.hospitalData.longitude)
*/
      
      this.hospitalService.addHospital(this.hospitalData)
        .subscribe(res => {
          window.alert("Hospital "+res.agent.hospital_name+" registrado com sucesso");
          this.hospitalData.name = '';
          //this.hospitalData.address = '';
          //this.hospitalData.building_number = '';
          //this.hospitalData.district = '';
          this.hospitalData.city = '';
          this.hospitalData.state = '';
          this.hospitalData.latitude = '';
          this.hospitalData.longitude = '';
          this.hospitalData.region = '';
          //console.log(res)
        },
        err => {
          console.log("Error: "+err)
          window.alert("Erro ao tentar registrar hospital")
        }
      );

    }

    else {
      window.alert("Há campos inválidos")
    }
  }

}