function PassengerNumberChecker (adult, childAges, infantOnLap , senior) {
	
	this.adult = parseInt (adult);
	this.childAges = new Array();
	for (var i=0;i < childAges.length; i++ ) {
		this.childAges.push ( parseInt (childAges [i]) );
	}
	this.infantOnLap = parseInt (infantOnLap);
	this.senior = parseInt (senior);
	
	/**
	 * @return integer
	 */
	this.getAdultPassengerNumber = function () {
		return this.adult + this.senior;
	};
	
	/**
	 * @return integer
	 */
	this.getInfantPassengerNumber = function () {
		var number = this.infantOnLap;
		for (var i=0; i < this.childAges.length ; i++) {
			if (this.childAges[i] < 5) {
				number ++;
			}
		}
		return number;
	};
	
	this.getChildrenAgeInterval = function (from , to) {
		var number = 0;
		for (var i=0; i < this.childAges.length ; i++) {
			if (this.childAges[i] >= 5 && this.childAges[i] <= 14) {
				number ++;
			}
		}
		return number;
	};
	
	this.isValidForIntantOnLap = function () {
		return this.adult + this.senior >= this.infantOnLap;
	};
	
	/**
	 * @return boolean
	 */
	this.isValid = function () {
		return this.getAdultPassengerNumber() >= this.getInfantPassengerNumber();
	};
	
	/**
	 * @return boolean
	 */
	this.isNeedToCallCustomerCare = function () {
		var smallChildren 	= this.getChildrenAgeInterval();
		if (smallChildren > 0) {
			return this.getAdultPassengerNumber() == 0;
		} else {
			return false;
		}
	};
	
}
