/******* Passenger/Room utility *********
 * This require jquery script library 
 */
function Pax(formName, errorObj ){	
	this.formObject = document.forms[formName];	
	this.formType = (formName)?formName.substring(0,2):"";	
	this.errorObject = errorObj;
	this.maxPax = 7;
}

Pax.prototype.setRooms = function(){
	var rr = this.formObject.roomCount.value;
	if( rr == 1 ){
		document.getElementById(this.formType+'CHILD_AGE_2').style.display = 'none';
		$("#"+this.formType+"PAX_ROOM2").fadeOut('fast');
	}
	else {
		var paxLeft = this.maxPax - this.getR1Pax();
		if( paxLeft > 0 ){
			$("#"+this.formType+"PAX_ROOM2").fadeIn('fast');
			this.setR2Adults();
			this.setR2Child();
		}
		else {
			this.formObject.roomCount.value = 1;
			if( this.errorObject ){
				this.errorObject.add('The number of passengers exceeds the maximum of '+this.maxPax,true);
			}
		}
	}
};

Pax.prototype.setR1Adults = function(){
	if( this.getPax() > this.maxPax ){
		// If there are 2 rooms, reset room 2 values
		if( this.getR2Pax() > 0 ){
			this.setR2Adults();
			this.setR2Child();
		}
		else {
			this.setR1Child();
		}
	}
};
Pax.prototype.setR1Child = function(){
	var px1 = this.getR1Pax();
	var px2 = this.getR2Pax();
	var px = this.getPax();
	if( px > this.maxPax ){
		this.formObject.room1Child.value = 0;
		if( this.errorObject ){
			this.errorObject.add('The number of passengers exceeds the maximum of '+this.maxPax,true);
		}
	}
	if( px2 > 0 ){
		this.setR2Adults();
		this.setR2Child();
	}
	this.setR1ChildAges();
};
Pax.prototype.setR1ChildAges = function(){
	var r1c = parseInt(this.formObject.room1Child.value,10);
	if( r1c <= 0 ){
		document.getElementById(this.formType+'CHILD_AGE_1').style.display = 'none';
	}
	else {
		document.getElementById(this.formType+'CHILD_AGE_1').style.display = '';
		var ageElem;
		for( var c = 1; c <= 6; c++ ) {
			ageElem = eval('document.'+this.formType+'SearchForm.room1ChildAge'+c);
	    	if(  c <= r1c ){	ageElem.style.display = '';	}
	    	else {	ageElem.style.display = 'none';	}
		}
	}
};
Pax.prototype.setR2Adults = function(){
	var paxLeft = this.maxPax - this.getR1Pax();
	if( paxLeft > 0 ){
		this.formObject.room2Adults.options.length = 0;
		for( var a = 0; a < paxLeft; a++ ) {
			this.formObject.room2Adults.options[a] = new Option(a+1,a+1);
		}
		this.formObject.room2Adults.options[0].selected = true;
	}
};
Pax.prototype.setR2Child = function(){
	var r2Adults = parseInt(this.formObject.room2Adults.value,10);
	var paxLeft = this.maxPax - this.getR1Pax() - r2Adults;
	this.formObject.room2Child.options.length = 0;
	this.formObject.room2Child.options[0] = new Option(0,0);
	if( paxLeft > 0 ){
		for( var c = 1; c <= paxLeft; c++ ) {
			this.formObject.room2Child.options[c] = new Option(c,c);
		}
	}
	this.setR2ChildAges();
};
Pax.prototype.setR2ChildAges = function(){
	var r2c = parseInt(this.formObject.room2Child.value,10);
	if( r2c == 0 ){
		document.getElementById(this.formType+'CHILD_AGE_2').style.display = 'none';
	}
	else {
		document.getElementById(this.formType+'CHILD_AGE_2').style.display = '';
		var ageElem;
		for( var c = 1; c <= 5; c++ ) {
			ageElem = eval('document.'+this.formType+'SearchForm.room2ChildAge'+c);
	    	if(  c <= r2c ){	ageElem.style.display = '';	}
	    	else {	ageElem.style.display = 'none';	}
		}
	}
};
// Get total passengers
Pax.prototype.getPax = function(){
	return this.getR1Pax() + this.getR2Pax();
};
Pax.prototype.getR1Pax = function(){
	var r1Adults = parseInt(this.formObject.room1Adults.value,10);
	var r1Child = parseInt(this.formObject.room1Child.value,10);
	return r1Adults + r1Child;
};
Pax.prototype.getR2Pax = function(){
	var pxx = 0;
	if( this.formObject.roomCount.value == 2 ){
		var r2Adults = parseInt(this.formObject.room2Adults.value,10);
		var r2Child = parseInt(this.formObject.room2Child.value,10);
		pxx = r2Adults + r2Child;
	}
	return pxx;
};
Pax.prototype.loadChildAges = function(){
	var forms = ['document.ssSearchForm','document.msSearchForm','document.lsSearchForm'];
	var frm, list;
	for( var f = 0; f < forms.length; f++ ){
		frm = eval(forms[f]);
		if( frm ){
			for( var i1 = 1; i1 <= 6; i1++ ){
				list = eval(forms[f]+'.room1ChildAge'+i1);
				setAges(list);
			}
			for( var i2 = 1; i2 <= 5; i2++ ){
				list = eval(forms[f]+'.room2ChildAge'+i2);
				setAges(list);
			}
		}
	}
};
Pax.prototype.verifyR1ChildAges = function(){
	var ageList, r1err = '';	
	if( this.formObject ){		
		for( var i1 = 1; i1 <= this.formObject.room1Child.value; i1++ ){			
			ageList = eval('document.'+this.formType+'SearchForm.room1ChildAge'+i1);
			if( ageList.selectedIndex < 1 ){
				r1err = (r1err=='')?''+i1:r1err+','+i1;
			}
		}
	}
	return r1err;
};
Pax.prototype.verifyR2ChildAges = function(){
	var ageList, r2err = '';
	if( this.formObject ){
		if( this.formObject.roomCount.value == 2 ){
			for( var i2 = 1; i2 <= this.formObject.room2Child.value; i2++ ){
				ageList = eval('document.'+this.formType+'SearchForm.room2ChildAge'+i2);
				if( ageList.selectedIndex < 1 ){
					r2err = (r2err=='')?''+i2:r2err+','+i2;
				}
			}
		}
	}
	return r2err;
};
function setAges(dropDown){
	var childAges = ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21" ];
	if( dropDown ){
		for( var c = 0; c < childAges.length; c++) {
			dropDown.options[dropDown.options.length] = new Option(childAges[c],childAges[c]);
		}
	}
}