if(DATE_FORMAT =="") DATE_FORMAT = 'MMM dd,yyyy';
if(DATE_STANDAR_FORMAT =="") DATE_STANDAR_FORMAT = 'M/d/y';

var NEW_CHAR ="\"";
var TARGET_REXP = /_/gi;

var today_	= formatDate(new Date(), DATE_STANDAR_FORMAT);

function srch_validate(f, result_page){	
	if(result_page !=''){
		f.action = result_page;
		f.submit();
	}

	return true;
}

function touch_total(f){
	if(f['.pcktotal'] == null) return false;
	
	var item_	= f['.item'].value;
	var itotal_ = (((f['.tr_' +item_] !=null)?eval(f['.tr_' +item_].value):0.00) +((f['.' +f['.st.prefix'].value +'.tr_' +item_] !=null)?eval(f['.' +f['.st.prefix'].value +'.tr_' +item_].value):0.00) + ((f['.' +f['.cr.prefix'].value +'.tr_' +item_] !=null)?eval(f['.' +f['.cr.prefix'].value +'.tr_' +item_].value):0.00));
	var ctotal_ = (f['tca_' +item_] !=null)?eval(f['tca_' +item_].value):0.00;

	var ftotal_ = 0.00;
	if(f['.dep'] !=null) ftotal_ = eval(f['.dep'].value.split('|')[0]);	
	
	var result_ = itotal_ +ctotal_ +ftotal_;
	
	if(f['.rchCOUNT'] !=null){
		var rchLENGTH= eval(f['.rchCOUNT'].value);
		var i;
		
		for(i=0; i <=rchLENGTH; i++){
			var prHOLDER	= '.rchpr_' +i;

			result_ += (f[prHOLDER] !=null)?eval(f[prHOLDER].value):0.00;
	//		alert('touch_total-->f[' +prHOLDER +'], +' +((f[prHOLDER] !=null)?eval(f[prHOLDER].value):0.00));
		}	
	}

	f['.pcktotal'].value = result_;

	var prEXP_	= (f['.underR'] !=null)?f['.underR'].value:'Under Request. Contact our agents.';
	if(f['.pcktotal'].value >0.00){
		var regEx  = new RegExp ('[x]', 'gi');
		prEXP_	= f['.prEXP'].value.replace(regEx, get_float_numb(result_));
		
		if((f['.pckjbooking'] !=null) && (eval(f['.pcktotal'].value) >0.00)){
			var packs_	= get_totalNumOffPeople(f);
			
			f['.pckjbooking'].value = ((packs_ >0)?get_float_numb((Math.round(100.00 *(result_/packs_))/100.00)):0.00);

			if(eval(f['.pcktotal'].value) !=eval(f['.pckjbooking'].value)){
				var regEx2  = new RegExp ('[y]', 'gi');
				var prEXP2_	= f['.prEXP'].value.replace(regEx, f['.pckjbooking'].value);
				var jprEXP_	= f['.per_paxEXP'].value.replace(regEx2, prEXP2_);
				
				prEXP_		= prEXP_ +' (' +jprEXP_ +')';			
			}
		}	
	}
	
	changeContent('.pckTotalTD', prEXP_, 'html');	
}

function touch_total2(f, val, sufix, sindex, rpiindex){
	var ss =eval(f['seasons' +sufix].value);
	var rpis =eval(f['rpis' +sufix].value);
	
	var ctrp =document.getElementById(sufix +'x' +sindex);
	ctrp.setAttribute('value', val);
	
	var total_		=0;	
	var exp_		=(f['price_exp']!=null)?f['price_exp'].value:PRICE_EXP;
	
	for(j=0; j<= ss; j++){
		var rp =document.getElementById(sufix +'x' +j);

		if(rp !=null)
			total_ += eval(rp.getAttribute('value'));
	}
	total_ =(Math.round(100*total_))/100;
		
	var numb_str =new String(total_).split('.');

	var total_str_	=total_;
	
	if(numb_str.length ==1)
		total_str_ =total_str_ +'.00'
	else if((numb_str.length ==2)&&(numb_str[1].length ==1))
		total_str_ =total_str_ +'0';
	
	total_str_ =exp_.replace("[x]", total_str_);
	
	var r_dates =eval(f['.rent_days_r_' +sufix].value);
	
	if(r_dates >1){
		var jour_p = (Math.round(100*(total_/r_dates)))/100;
	
		numb_str =new String(jour_p).split('.');	

		if(numb_str.length ==1)
			jour_p =jour_p +'.00'
		else if((numb_str.length ==2)&&(numb_str[1].length ==1))
			jour_p =jour_p +'0';	
	
		if(f['.jbookings_r_' +sufix] !=null) f['.jbookings_r_' +sufix].value = jour_p;

		total_str_ =total_str_ +'(' +f['.jbookings_str_r_' +sufix].value.replace("[x]", exp_.replace("[x]", jour_p)) +')';
	}
	
	if(f['t_' +sufix] !=null) f['t_' +sufix].value = total_;
	
	changeContent(sufix +'_total', total_str_, 'text');	
 }

 function shopping_validate(f, url){
	var onehour		= 1000 * 60 * 60;
	var oneday		= onehour * 24;
	 
	if(emptyField(f['name'].value)){
		alert(f['err_name'].value.replace(TARGET_REXP, NEW_CHAR));		 
		return false;
	}	
	
	if((f['email'] !=null) && emptyField(f['email'].value)){
		alert(f['err_email'].value.replace(TARGET_REXP, NEW_CHAR));		 
		return false;
	}

	var i;
	var grn_ = false;

	if(f['.chi'] !=null){
		if(emptyField(f['.chi'].value)){
			alert(f['err_.chi'].value.replace(TARGET_REXP, NEW_CHAR));		 
			return false;
		}

		if(isNaN(Date.parse(f['.chi_standar'].value)) || (Math.floor(Date.parse(f['.chi_standar'].value)/oneday) <Math.floor(Date.parse(today_)/oneday))){
			alert(f['err_.chiv'].value.replace(TARGET_REXP, NEW_CHAR));					
			return false;
		}	
		
		var chi_	= formatDate(new Date(f['.chi_standar'].value), DATE_FORMAT);
		var grn_chi_= formatDate(new Date(f['.grn.chi'].value), DATE_FORMAT);		
		
	}else if(f['.dep'] !=null){
		var dep_	= getFval(f, '.dep', 's');
		var grn_dep_= f['.grn.dep'].value;

		grn_ = (grn_ || (dep_ !=grn_dep_));
	 }
	 
	 var stPREFIX_	= '.' +f['.st.prefix'].value;
	 var crPREFIX_	= '.' +f['.cr.prefix'].value;
//  Cruise....
	if(f[crPREFIX_ +'.rentPeriod'] !=null){
		if(f['.grn' +crPREFIX_ +'xrentPeriod'] !=null){
			var grn_xnights_= (emptyField(f['.grn' +crPREFIX_ +'xrentPeriod'].value))?0:eval(f['.grn' +crPREFIX_ +'xrentPeriod'].value);
			var xnights_	= (f[crPREFIX_ +'.xrentPeriod'].type.indexOf('select') !=-1)?eval(getFval(f, crPREFIX_ +'.xrentPeriod', 's')):0;

			grn_ = (grn_ || (grn_xnights_ !=xnights_));
		}
		
		if(f['.grn' +crPREFIX_ +'.p'] !=null){
			var p_		= getFval(f, crPREFIX_ +'.pckpersons', 's');
			var grn_p_	= f['.grn' +crPREFIX_ +'.p'].value;

			grn_ = grn_ || (eval(p_) !=eval(grn_p_));
		}
		
		if(f['.grn' +crPREFIX_ +'.r'] !=null){
			var r_		= getFval(f, crPREFIX_ +'.r', 's');
			var grn_r_	= f['.grn' +crPREFIX_ +'.r'].value;

			grn_ = grn_ || (r_ !=grn_r_);
		
			for(i=1;(!grn_ && (i <=r_)); i++){
				var accs_			= getFval(f, '.accs_' +i, 's');
				var grn_accs_		= f['.grn' +crPREFIX_ +'.accs_' +i].value;

				var pckadlts_		= getFval(f, crPREFIX_ +'.pckadlts_' +i, 's');
				var grn_pckadlts_	= f['.grn' +crPREFIX_ +'.pckadlts_' +i].value;
			
				var inf_			= getFval(f, crPREFIX_ +'.pckinfs_' +i, 's');
				var grn_inf_		= f['.grn' +crPREFIX_ +'.pckinfs_' +i].value;
				
				var chs_			= getFval(f, crPREFIX_ +'.pckchs_' +i, 's');
				var grn_chs_		= f['.grn' +crPREFIX_ +'.pckchs_' +i].value;

				grn_			= grn_ || (accs_ !=grn_accs_) || (inf_ !=grn_inf_) || (inf_ !=grn_inf_) || (chs_ !=grn_chs_);
			}
		}				
	}
	
//  Standar....
	if(f['.grn' +stPREFIX_ +'xrentPeriod'] !=null){
		var grn_xnights_= (emptyField(f['.grn' +stPREFIX_ +'xrentPeriod'].value))?0:eval(f['.grn' +stPREFIX_ +'xrentPeriod'].value);
		var xnights_	= (f[stPREFIX_ +'.xrentPeriod'].type.indexOf('select') !=-1)?eval(getFval(f, stPREFIX_ +'.xrentPeriod', 's')):0;
		
		grn_ = (grn_ || (grn_xnights_ !=xnights_));
	}

	if(f['.hotel'] !=null){
		var hotel_	= getFval(f, '.hotel', 's');
		var grn_hotel_= f['.grn.hotel'].value;

		grn_ = grn_ || (hotel_ !=grn_hotel_);
	}

	if(f['.grn' +stPREFIX_ +'.p'] !=null){
		var p_		= getFval(f, stPREFIX_ +'.pckadlts', 's');
		var grn_p_	= f['.grn' +stPREFIX_ +'.p'].value;

		grn_ = grn_ || (p_ !=grn_p_);
	}
	
	if(f['.grn' +stPREFIX_ +'.r'] !=null){
		var r_		= getFval(f, stPREFIX_ +'.r', 's');
		var grn_r_	= f['.grn' +stPREFIX_ +'.r'].value;

		grn_ = grn_ || (r_ !=grn_r_);

		for(i=1;(!grn_ && (i <=r_)); i++){
			var inf_		= getFval(f, stPREFIX_ +'.pckinfs_' +i, 's');
			var grn_inf_	= f['.grn' +stPREFIX_ +'.pckinfs_' +i].value;
			
			var chs_		= getFval(f, stPREFIX_ +'.pckchs_' +i, 's');
			var grn_chs_	= f['.grn' +stPREFIX_ +'.pckchs_' +i].value;
			
			grn_			= grn_ || (inf_ !=grn_inf_) || (chs_ !=grn_chs_);
		}
	}

	if(f['.grn' +stPREFIX_ +'.accs'] !=null){
		var accs_		= getFval(f, stPREFIX_ +'.accs', 's');
		var grn_accs_	= f['.grn' +stPREFIX_ +'.accs'].value;

		grn_ = grn_ || (accs_ !=grn_accs_);
	}
/*
	if(f['.pcku'] != null){
		if(emptyField(f['.pcku'].value)){
			alert(f['err_.pcku'].value.replace(TARGET_REXP, NEW_CHAR));		 
			return false;
		}

		if(isNaN(Date.parse(f['.pcku_standar'].value)) || (Math.floor(Date.parse(f['.pcku_standar'].value)/oneday) <Math.floor(Date.parse(today_)/oneday))){
			alert(f['err_.pckuv'].value.replace(TARGET_REXP, NEW_CHAR));					
			return false;
		}
		
		var caddCar_	= getFval(f, '.caddCar', 's');
		var grn_caddCar_= f['.grn.caddCar'].value;

		var pcku_	= formatDate(new Date(f['.pcku_standar'].value), DATE_FORMAT);
		var grn_pcku_= formatDate(new Date(f['.grn.pcku'].value), DATE_FORMAT);		

		var crdays_	= getFval(f, '.crdays', '');
		if(crdays_ =='') crdays_ = getFval(f, '.crdays', 's');
		
		var grn_crdays_= f['.grn.crdays'].value;

		grn_ = (grn_ || (caddCar_ !=grn_caddCar_) || (pcku_ !=grn_pcku_) || (crdays_ !=grn_crdays_));
	}
*/

//	alert('Working on...');
		
	if(!grn_)
		goTo(f, url);
	else
		alert(f['err_.grn'].value.replace(TARGET_REXP, NEW_CHAR));
}

function getrate_validate(f, url){
	var onehour		= 1000 * 60 * 60;
	var oneday		= onehour * 24;
	 
	if(f['.chi'] !=null){
		if(emptyField(f['.chi'].value)){
			alert(f['err_.chi'].value.replace(TARGET_REXP, NEW_CHAR));		 
			return false;
		}

		if(isNaN(Date.parse(f['.chi_standar'].value)) || (Math.floor(Date.parse(f['.chi_standar'].value)/oneday) <Math.floor(Date.parse(today_)/oneday))){
			alert(f['err_.chiv'].value.replace(TARGET_REXP, NEW_CHAR));					
			return false;
		}	
	};
	
	goTo(f, url);
}
	
function validate_travelinfo(f){
	var onehour		= 1000 * 60 * 60;
	var oneday		= onehour * 24;
	
	var must_submit = (!emptyField(f['.doff'].value) && !emptyField(f['.pcku'].value));
	
	if(!emptyField(f['.pcku'].value) || !emptyField(f['.doff'].value)){
		var chi_ = today_;
		var cho_ = today_;
			
		if(!emptyField(f['.pcku'].value)){
			if((isNaN(Date.parse(f['.pcku_standar'].value))) || (Math.floor(Date.parse(f['.pcku_standar'].value)/oneday) <Math.floor(Date.parse(today_)/oneday))){
				alert(f['err_.pcku'].value.replace(TARGET_REXP, NEW_CHAR));
					
				return false;
			}

			if(emptyField(f['.doff'].value)){
				f['.doff'].value = formatDate(new Date(Date.parse(f['.pcku_standar'].value) +oneday), DATE_FORMAT);
				f['.doff_standar'].value = formatDate(new Date(Date.parse(f['.pcku_standar'].value) +oneday), DATE_STANDAR_FORMAT);
			}
		}
		
		if(!emptyField(f['.doff'].value)){
			if(emptyField(f['.pcku'].value)){
				f['.pcku'].value = formatDate(today_, DATE_FORMAT);
				f['.pcku_standar'].value = formatDate(today_, DATE_STANDAR_FORMAT);
			}
			
			if((isNaN(Date.parse(f['.doff_standar'].value))) || ((Math.floor(Date.parse(f['.doff_standar'].value)/oneday) <Math.floor(Date.parse(today_)/oneday)) || (Math.floor(Date.parse(f['.doff_standar'].value)/oneday) <Math.floor(Date.parse(f['.pcku_standar'].value)/oneday)))){
				alert(f['err_.doff'].value.replace(TARGET_REXP, NEW_CHAR));
					
				return false;
			}
		}
	}else{
		alert(f['err_.pcku'].value.replace(TARGET_REXP, NEW_CHAR));
		
		return false;
	 }

	if(f['.a'] != null)
		f['.a'].value = "/s";
		
	return must_submit;
}

//================================//

function touch_departINFO(f, val){
	var infARR = val.split('|');
	
	var flag_ = (arguments.length >2)?arguments[2]:'[a]';
	
	if((flag_.indexOf('[a]') ==-1) && (flag_.indexOf('[f]') ==-1)) return false;

	var regEx = new RegExp ('[y]', 'gi');
	if((flag_.indexOf('[a]') !=-1) || (flag_.indexOf('[d]') !=-1)){
		var cnn_paxEXP_	= f['.cnn2fEXP'].value;
		
		changeContent('.pckdep', infARR[1], 'html');
		changeContent('.cnn2f', '*' +cnn_paxEXP_.replace(regEx, infARR[1]), 'html');
	}
	
	var lstpr_		= (f['.lstpr'] !=null)?eval(f['.lstpr'].value):0.00;
	var lstsoff_	= (f['.lstsoff'] !=null)?eval(f['.lstsoff'].value):0.00;
	
	var per_paxEXP_	= f['.per_paxEXP'].value;
	var special_EXP_= f['.specialEXP'].value;			

	per_paxEXP_= per_paxEXP_.replace(regEx, get_float_numb(lstpr_ +eval(infARR[0])));
	if(lstsoff_ >0) per_paxEXP_ = special_EXP_.replace(regEx, per_paxEXP_.replace(regEx, get_float_numb(lstsoff_ +eval(infARR[0])))) +'<BR>' +per_paxEXP_
	
	changeContent('.from', per_paxEXP_, 'html');	
}

function touch_rent_charges_price(f, index_, pr_, p_){
	var total_		= get_float_numb(pr_ *p_);
	var prEXP_		= f['.prEXP'].value;
	var continerID_	= '.rchTDpr_' +index_;	
	var prHOLDER	= '.rchpr_' +index_;

	var regEx	= new RegExp ('[x]', 'gi');
	
	f[prHOLDER].value = (pr_ *p_);
	
	prEXP_ = prEXP_.replace(regEx, total_);

	changeContent(continerID_, prEXP_, 'html');
}

function get_totalNumOffPeople(f){	
//	return eval(getFval(f, '.pckadlts', 's')) +eval(getFval(f, '.pckinfs', 's')) +eval(getFval(f, '.pckchs', 's'));
	var stpFname = '.' +f['.st.prefix'].value +'.pckpersons';
	var crpFname = '.' +f['.cr.prefix'].value +'.pckpersons';

	return (f[crpFname] !=null)?eval(getFval(f, crpFname, 's')):eval(getFval(f, stpFname, ''));
}

function touch_rent_charges(f){
	if(f['.rchCOUNT'] ==null) return false;
	
	var p_			= get_totalNumOffPeople(f);
	var rchCOUNT_	= f['.rchCOUNT'].value;
	var i, j;

	for(i=0; i <=rchCOUNT_; i++){
		var infContiner_	= ".rchi_"  +i;
		var pARTs_			= f[infContiner_].value.split(':');
		var fName_			= '.rchp_' +pARTs_[0];
		
		var pRICE_			= pARTs_[1];
		var tYPE_			= pARTs_[2];
		var cVAL_			= getFval(f, fName_, pARTs_[2]);
		
		if(tYPE_ =='s'){
			var field_ = f[fName_];
			
			if(field_ ==null) return false;
			
			field_.options.length = 1;
			for(j=1; j <=p_; j++) field_.options[j] = new Option(j, j);

			selFld(f, fName_, tYPE_, cVAL_);
		}else{
			selFld(f, fName_, tYPE_, p_);
			cVAL_	= p_;
		}
			
		if(eval(pRICE_) >0) touch_rent_charges_price(f, i, pRICE_, cVAL_);
	}
	
	touch_rent_charges_total(f);
}

function touch_rent_charges_total(f){
	var rchCOUNT_= f['.rchCOUNT'].value;
	var i, j;
	var regEx	 = new RegExp ('[x]', 'gi');
	var result_	 = 0.00;
	
	for(i=0; i <=rchCOUNT_; i++){
		var prHOLDER	= '.rchpr_' +i;
		
		result_ += (f[prHOLDER] !=null)?eval(f[prHOLDER].value):0.00;
	}	
	prEXP_	= f['.prEXP'].value.replace(regEx, get_float_numb(result_));
	
//	alert('touch_total-->' +prEXP_);
	f['.pckRchtotal'].value = result_;
	changeContent('.rchtotalTD', prEXP_, 'html');
}

function real_rcount(n_, d_){
	var numb_  = n_/d_;
	var rnumb_ = (numb_ >1)?Math.round(numb_):1;

//	alert("real_rcount(n_, d_) -->> " +numb_ +", " +rnumb_);
	
	return (numb_ >rnumb_)?rnumb_ +1:rnumb_;
}

function r(f, array_, target, rooms, index, stream, streamval_, continer_){
	var t = (array_.length !=null)?array_.length:0;
	var accFname= '.' +f['.st.prefix'].value +'.accs';
	var mt_ = 1, mt0_;
	
	if((target <=0) || (rooms ==0)){
//		if(target ==0) f[".accs"].value += ((f[".accs"].value !='')?',/r':'') +stream;
		if((target <=0) && (rooms ==0)){
			if((mt_ ==1) || (mt_ <target)) mt_ = target;

//			alert("r(array_, target, " +index +") -->> target=" +target +', stream=' +stream +', mt_=' +mt_);
			
			var regEx2 = new RegExp('r[0-9]*#', 'gi');
			continer_.options[continer_.length] = new Option(stream, streamval_.replace(regEx2, '0') +'*t:' +target);
		}
		f[accFname].value += stream +'/r';
		
		return mt_;
	}
	
	var i, j;
	var code_, name_, cap_, count_;
	
	for(i=index; i <t; i++){
		var info_ = array_[i].value.split(":");
		var regEx = new RegExp('r' +info_[0] +'#', 'gi');
		
		code_ = info_[0]; name_ = info_[1]; cap_ = eval(info_[2]); count_ = eval(info_[3]);
		for(j=1; j <=count_; j++){
			mt0_ = r(f, array_, target -(j *cap_), rooms -j, i+1, stream +((stream !='')?',':'') +j +' ' +name_, streamval_.replace(regEx, j), continer_);
			
			if((mt_ ==1) || ((mt0_ <1) && (mt_ <mt0_))) mt_ = mt0_;
		}
	}

	return mt_;
}

function touch_accomodations(f){
	var stPREFIX_ = '.' +f['.st.prefix'].value;
	
	var p_, r_, i, j;

	p_		= eval(getFval(f, stPREFIX_ +'.pckadlts', 's'));
	if(p_ <=0) p_ =1;
	
	var info_;
	var arr_ = getARRAY(f[stPREFIX_ +'.rtc']);
	
	var min_rcount = 0;
	var max_rcount = 1;

	for(i=0; i <arr_.length; i++){
		info_ = arr_[i].value.split(":");

		var rcount_ = real_rcount(p_, eval(info_[2]))
		
		arr_[i].value = info_[0] +":" +info_[1] +":" +info_[2] +":" +rcount_;
		
		min_rcount = ((min_rcount >0) && (min_rcount <rcount_))?min_rcount:rcount_;
		max_rcount = (max_rcount >rcount_)?max_rcount:rcount_;
	}
	
//	alert('touch_accomodations -->>' +min_rcount +', ' +max_rcount);
	
	var rFname	= stPREFIX_ +'.r';
	var accFname= stPREFIX_ +'.accs';
	
	r_ = eval(getFval(f, rFname, 's'));	
	touch_rooms(f[rFname], min_rcount, max_rcount, r_);	
//	if the rooms number change....	
	r_ = eval(getFval(f, rFname, 's'));
//	alert('touch_accomodations -->>r_=' +r_ +', p_=' +p_ +', rtarr=' +f[stPREFIX_ +'.rtc'] +', ' +f[accFname].options);
	
	f[accFname].options.length = 0;
	var maxTARGET_ = 't:' +r(f, arr_, p_, r_, 0, '', f[stPREFIX_ +'.str'].value, f[accFname]);	
	
	arr_ = new Array();
	
//	alert('touch_accomodations -->>maxTARGET_=' +maxTARGET_);	
	// Indudablemente esto se debe hacer mejor.....
	for(i=0; i <f[accFname].options.length; i++){
		if(f[accFname].options[i].value.indexOf(maxTARGET_) !=-1){
			var pARTs_ = f[accFname].options[i].value.split('*');
			arr_[arr_.length] = new Option(f[accFname].options[i].text, pARTs_[0]);
		 }
	}
	
	f[accFname].options.length = arr_.length;
	for(i=0; i <arr_.length; i++) f[accFname].options[i] = arr_[i];	
	f[accFname].options[0].selected = true;

	touch_stroom_persons_panels(f)
	
	mustGetRate(f);
}

function touch_stroom_persons_panels(f){
	var stPREFIX_	= '.' +f['.st.prefix'].value;
	
	var TDname_		= stPREFIX_ +'.tdAccs';
	var accPname_	= stPREFIX_ +'.acc_panel';
	var accsSname_	= stPREFIX_ +'.accs';

	var accs_		= getFval(f, accsSname_, 's').split(',');
	var rARR_		= getARRAY(f[stPREFIX_ +'.rtc']);
	var accstr_		= f[stPREFIX_ +'.str'].value;	

	var r_			= 0;
	var i, j;
	replaceTEXT(f, TDname_, '', '');
	for(i=0; i <accs_.length; i++){		
		accs_[i] = eval(accs_[i]);
		if(accs_[i] >0){		
			var pARTs_ = rARR_[i].value.split(':');
			
			for(j=1; j <=accs_[i]; j++){
				r_++;
				addTEXT(f, TDname_, f[accPname_].value, 'rn_=' +pARTs_[1] +':_i=' +r_ +':_j=' +j);
			}
		}
	}
}

// roomsss........... begin
function touch_rooms(select_, lower, upper, val){
	var i;
	
	select_.options.length = 0;
	
//	alert('touch_rooms-->>touch_rooms(' +select_ +', ' +lower +', ' +upper +', ' +val +')');			
	for(i=lower; i <=upper; i++) select_.options[select_.length] = new Option(i, i);

	sel_select(select_, val);
}

// roomsss........... end

function touch_cr_accomodations(f, peoples){
	var rFname_		= '.' +f['.cr.prefix'].value +'.r';
	var TDname_		= '.' +f['.cr.prefix'].value +'.tdAccs';
	var accPname_	= '.' +f['.cr.prefix'].value +'.acc_panel';
	
	var select_		= f[rFname_];
	var val_		= eval(getFval(f, rFname_, 's'));
	
	if(val_ >peoples) val_ = peoples;
	
	touch_rooms(select_, 1, peoples, val_);
	
	var i, j;
	for(i=1; i <=peoples; i++){
		var itemID		= '.acc_' +i;

		if(document.getElementById(itemID) !=null){
			changeVisibility((i <=val_), itemID);
		}else if(i <=val_){
			addTEXT(f, TDname_, f[accPname_].value, '_i=' +i, '', 1, '');
		}
	}
}

function touch_cracc_mxcap(f, shcontiner_, acc_){
	var rooms = f['.' +f['.st.prefix'].value +'.rtc'];
	var i, j;
	
	var accPARTs_ = acc_.split('*');
	
	for(i=0; i<rooms.length; i++){
		var pARTs_ = rooms[i].split(':');
		
		if(pARTs_[0] == accPARTs_[0]){
			pARTs_[2] = eval(pARTs_[2]);
			
			var val_ = (shcontiner_.options[shcontiner_.options.selectedIndex].value <=pARTs_[2])?shcontiner_.options.selectedIndex:pARTs_[2];
	
			select_.options.length = 0;
			for(j=1; j <=pARTs_[2]; j++) select_.options[select_.length] = new Option(j, j);
			sel_select(shcontiner_, val);
			
			return false;
		}
	}
}

function touch_stags_counters(f){
	var standar_prefix2_ = '.' +f['.st.prefix'].value +'.';
	var i;	
	var rs = eval(getFval(f, standar_prefix2_ +'r', 's'));
	var a_ = (f[standar_prefix2_ +'pckadlts'] !=null)?eval(getFval(f, standar_prefix2_ +'pckadlts', 's')):0.00, i_ = 0, c_ = 0;
	
	for(i=1; i<= rs; i++){
		i_ += (f[standar_prefix2_ +'pckinfs_' +i] !=null)?eval(getFval(f, standar_prefix2_ +'pckinfs_' +i, 's')):0.00;
		c_ += (f[standar_prefix2_ +'pckchs_' +i] !=null)?eval(getFval(f, standar_prefix2_ +'pckchs_' +i, 's')):0.00;
	}	
//	alert('touch_stags_counters -->>' +a_ +', ' +rs);
	f[standar_prefix2_ +'pckchs'].value	= c_;
	f[standar_prefix2_ +'pckinfs'].value= i_;	
	
	var persons_ = (a_ +i_ +c_);
	f[standar_prefix2_ +'pckpersons'].value	= persons_;
//	alert('touch_stags_counters -->>(' +a_ +' +' +i_ +'+' +c_ +')=' +persons_);
//	touch_accomodations(f, persons_);
	touch_rent_charges(f);
}

function touch_crags_counters(f){
	var cruise_prefix2_	= '.' +f['.cr.prefix'].value +'.';
	
	var rs = eval(getFval(f, cruise_prefix2_ +'r', 's'));
	var i;
	var a_ = 0, i_ = 0, c_ = 0;

	for(i=1; i<= rs; i++){
		a_ += eval(getFval(f, cruise_prefix2_ +'pckadlts_' +i, 's'));
		i_ += eval(getFval(f, cruise_prefix2_ +'pckinfs_' +i, 's'));
		c_ += eval(getFval(f, cruise_prefix2_ +'pckchs_' +i, 's'));
	};
	
	f[cruise_prefix2_ +'pckadlts'].value= a_;
	f[cruise_prefix2_ +'pckchs'].value	= i_;
	f[cruise_prefix2_ +'pckinfs'].value	= c_;	
	
	var persons_ = (a_ +i_ +c_);
	var pFname_  = cruise_prefix2_ +'pckpersons';
	
	sel_select(f[pFname_], persons_);	
//	touch_cr_accomodations(f, persons_);
	touch_rent_charges(f);
}

function touch_stacco_adults(f){
	var standar_prefix2_= '.' +f['.st.prefix'].value +'.';
	var cruise_prefix2_	= '.' +f['.cr.prefix'].value +'.';

	if(f[standar_prefix2_ +'pckadlts'] ==null) return false;
	
	var crpersons_val= (f[cruise_prefix2_ +'pckpersons'] !=null)?getFval(f, cruise_prefix2_ +'pckpersons', 's'):1;
	
	var i;
	var stadlt_val	= getFval(f, standar_prefix2_ +'pckadlts', 's');	
	var stselect	= f[standar_prefix2_ +'pckadlts'];
	
	stselect.options.length = 0;
	for(i=1; i<=crpersons_val; i++) stselect.options[stselect.options.length] = new Option(i, i);	
	
	if(stadlt_val >crpersons_val) stadlt_val = crpersons_val;
	sel_select(stselect, stadlt_val);
	
	touch_accomodations(f);
}

function touch_price_CELLs(f, rINDEX_, sCOUNT_, sharing_){
	var crsharing_ = f['.crsharing' +rINDEX_].value;
	
	changeGrpVisibility(false, 'r_' +rINDEX_ +'_sh' +crsharing_+'_s_', sCOUNT_);
	changeGrpVisibility(true, 'r_' +rINDEX_ +'_sh' +sharing_+'_s_', sCOUNT_);
	
	f['.crsharing' +rINDEX_].value = sharing_;
}

function touch_stprice_CELLs(f, rINDEX_, sCOUNT_, age_){
//	alert("touch_stprice_CELLs -->> f['.ag_" +rINDEX_ +"]=" +f['.ag_' +rINDEX_]);
	var agsharing_ = f['.ag_' +rINDEX_].value;
	var i;
	
	for(i=0;i <sCOUNT_; i++){
		changeVisibility(false, rINDEX_ +'_s' +i +'_ag' +agsharing_);
		changeVisibility(true, rINDEX_ +'_s' +i +'_ag' +age_);
	}
	
	f['.ag_' +rINDEX_].value = age_;
}

function touch_gritems(f, accval_){
	if(f['.crr.acc'] != null){
		changeVisibility(false, '.grpit_' +f['.crr.acc'].value);
		
		f['.crr.acc'].value = accval_;
	}
	
	changeVisibility(true, '.grpit_' +accval_);
}

function touch_cruise_duration(f, value){
	var standar_prefix2_= '.' +f['.st.prefix'].value +'.';
	var cruise_prefix2_	= '.' +f['.cr.prefix'].value +'.';

	if(f[cruise_prefix2_ +'rentPeriod'] == null) return;
		
	var pARTs_			= value.split("|");

	f[cruise_prefix2_ +'rentPeriod'].value = eval(pARTs_[2]);
	changeContent(cruise_prefix2_ +'rentPeriodLABEL', pARTs_[2], 'html');

//." &crPREFIX_ &".rentPeriod
}