import { Component, Input, Output, EventEmitter } from '@angular/core';
import { FormBuilderProvider } from '../../providers/form-builder/form-builder';


@Component({
  selector: 'ws-number-input',
  template: `
    <ion-item class="ws-input {{fieldClass}}" [ngClass]="(!isFieldValid && showError) ? 'field-error' : ''">
        <ion-label color="primary" floating *ngIf="!question.hideQuestion">{{question.question}}</ion-label>
        <ion-input placeholder="{{question.placeholder}}" type="number" value="{{fieldValue}}" (ionChange)="setAnswer($event, question)" ></ion-input>
    </ion-item>
  `,
  styles: [`

  `]
})
export class WsNumberInputComponent {

  @Input('question') question;
  @Output() answerGiven = new EventEmitter();

  fieldValue:string = '';
  isFieldValid:boolean = false;
  showError:boolean = false;
  fieldClass:string = '';
  
  constructor(public formBuilder: FormBuilderProvider){
    	this.fieldValue = '';
  }

  ngOnInit() {
      if(typeof this.question.value !== 'undefined'){
          this.fieldValue = this.question.value;
      } 

      if(typeof this.question.inputClass !== 'undefined'){
          this.fieldClass = this.question.inputClass;
      }
  }

  setAnswer(event,question){
  	let isStringValid = this.validateAnswer(question,event.value);

  	if(!isStringValid){
		this.isFieldValid = false;
  		this.showError = true;
  	}else{
		this.isFieldValid = true;
  		this.showError = false;
  	}

  	if(this.isFieldValid){
  		question.value = event.value;
      question.valid = true;
  		this.answerGiven.emit(question);
  	}
  		
  }


  validateAnswer(question,string){	
  		return this.formBuilder.validateAnswer(question,string);
  }


}
