function showRooms(f, top){
	value	= eval(f['.crom'].value);
																											
	for(i=value; i >0; i--){
		changeVisibility(true, 'R'+i);								
		changeVisibility((f['cchild'+i].value >0), 'ageSel'+i);
	}
						
	for(j=(value+1); j < top+1; j++){
		changeVisibility(false, 'R'+j);
		changeVisibility(false, 'ageSel'+j);
	}
										
	showAgesOfChildsPanel(top);
}
									
function showAgesOfChildsPanel(rooms){
	var show_panel = false;
										
	for(i=1; i <= rooms; i++)								
		show_panel	= show_panel || (document.getElementById('ageSel'+i).style.display != 'none');
											
	changeVisibility(show_panel, 'ageFrame');
}
									
function showRChildAges(f, room){							
	value	= eval(room);
	//var letter	= f['letters'].value.split(",")[value -1];
										
	var	room_str	= new String(room);										
	var childs	= f['cchild' + room];
				
	for(i=eval(childs.value); i >0; i--){				
		changeVisibility(true, 'agesLabel_' + room +i);
		changeVisibility(true, 'agesSel_' + room +i);
	}
										
	for(j=(eval(childs.value) +1); j <= childs.length; j++){
		changeVisibility(false, 'agesLabel_' + room +i);
		changeVisibility(false, 'agesSel_' + room +i);
	}
										
	changeVisibility((childs.value >0), 'ageSel'+ value);
										
	showAgesOfChildsPanel(f['.crom'].length);
}

function getRtSelect(f, index_, capacity, sel_val){
	var rcount =f['rtypes_count'].value;
	var code_ ="<select name='.rt" +index_ +"'>";

	var rtARR_ = getARRAY(f['.rt']);

	for(i=0; i< rcount; i++){
		var gparts	=rtARR_[i].value.split(':');
		
		if(eval(gparts[2]) ==eval(capacity)){
			code_ += "<option value='" +gparts[0] +"'"
			
			if(gparts[0] == sel_val) code_ +=" selected";
		
			code_ +=">" +gparts[1];
		}
	};
	code_ += "</select>";

	return code_;	
}
 
function touch_rsel(f, minval, maxval){
	//alert('touch_rsel ..>' +maxval +' -' +minval +' = ' +(maxval -minval));
	
	if(minval <=0) minval =1;
	
	f['.r'].options.length = 0;
	for(i =0; i <=maxval -minval; i++) f['.r'].options[i] = new Option(minval +i, minval +i);
	
	f['.r'].options[0].selected = true;  
}
  
function touch_r(f, ad_count){	
	//mx_rooms	= f['max_rooms'].value;
	var touch_r_mn_occ		= (f['min_capacity'] != null)?eval(f['min_capacity'].value):1;
    var touch_r_mx_occ		= eval(f['max_capacity'].value);	
    
	//alert('touch_r ..> adults=' +ad_count +' get_mn_rooms(' +ad_count +', ' +touch_r_mx_occ +')=' +get_mn_rooms(ad_count, touch_r_mx_occ) +' Math.floor(' +ad_count +'/' +touch_r_mn_occ +')=' +Math.floor(ad_count/touch_r_mn_occ) +' acc_sel=' +acc_sel);	
	touch_rsel(f, get_mn_rooms(ad_count, touch_r_mx_occ), Math.floor(ad_count/touch_r_mn_occ));
	touch_a(f);
}

function touch_r_1(f, ad_count, acc_sel){
	//mx_rooms	= f['max_rooms'].value;
	var touch_r_1_mn_occ		= (f['min_capacity'] != null)?f['min_capacity'].value:1;
    var touch_r_1_mx_occ		= f['max_capacity'].value;	
    
	//alert('touch_r_1 ..> adults=' +ad_count +' get_mn_rooms(' +ad_count +', ' +touch_r_1_mx_occ +')=' +get_mn_rooms(ad_count, touch_r_1_mx_occ) +' Math.floor(' +ad_count +'/' +touch_r_1_mn_occ +')=' +Math.floor(ad_count/touch_r_1_mn_occ) +' acc_sel=' +acc_sel);	

	//touch_rsel(f, get_mn_rooms(ad_count, touch_r_1_mx_occ), ad_count);
	touch_rsel(f, get_mn_rooms(ad_count, touch_r_1_mx_occ), Math.floor(ad_count/touch_r_1_mn_occ));
	touch_a(f, acc_sel, 0);
} 
    
function touch_childs(f){
	var rs_	=eval(f['.r'].options[f['.r'].selectedIndex].value);
	var ads_= f['.adlts'].length;

	if((f['.srt_ids'] != null) && (f['.srt_ids'].value !=''))
		rtids_arr = f['.srt_ids'].value.split(':');
	
	var acc_arr=f['.accs'].options[f['.accs'].selectedIndex].value.split(',');
	var r_names ='';

	var gindex_ =0;

	var rtcARR_ = getARRAY(f['.rtc']);
	
	for(k=0;k <acc_arr.length; k++)
		if(acc_arr[k] >0){
			parts = rtcARR_[k].value.split(':');
			
			for(l=1; l <= acc_arr[k]; l++){
				gindex_++;
				
				if(r_names !='') r_names += ',';
				r_names += getRtSelect(f, gindex_, parts[0], ((f['.srt_ids'] != null) && (f['.srt_ids'].value !=''))?rtids_arr[gindex_ -1]:0) +'_' +l;
			};
		}
	var rn_arr =r_names.split(',');

	for(k=1; k<= ads_; k++){
		changeContent('chslb_' +k, rn_arr[k -1] +' (max. of ' +f['chsmx' +k].value +' child(s))', 'html');
		changeVisibility((k <= rs_), 'chstb_' +k);
	}  
}

function touch_childs_txt(f){
	var rs_		= eval(f['.r'].options[f['.r'].selectedIndex].value);
	var mxrs_	= f['max_rooms'].value;
	var chsmx	= eval(f['chsmx'].value); //f['chsmx' +index].value;
	var acc_arr	= f['.accs'].options[f['.accs'].selectedIndex].value.split(',');

	var rtcARR_ = getARRAY(f['.rtc']);

	var r_count_= 0;
	
	var shPANEL_= f['wth_chs'].checked;
	for(k = 0;k <=acc_arr.length; k++)		
		if(acc_arr[k] >0){
			parts = rtcARR_[k].value.split(':');
	
			var childMX = (eval(parts[2]) <chsmx)?eval(parts[2]):chsmx;
			for(l=1; l <= acc_arr[k]; l++){
				r_count_++;
				
				changeContent('chslb_' +r_count_, r_count_ +'. ' +parts[1] +' (max. of ' +childMX +' child(s))', 'html');
				changeVisibility(shPANEL_, 'chstb_' +r_count_);
				
				f['.chld_rtx' +r_count_].value = k;
			}
		}
		
	changeGrpIntvVisibility(false, 'chstb_', r_count_ +1, mxrs_);
}
  
function childCompletation(f, index, label){
	var fn_		= label +index;
	var acc_	= getFval(f, '.accs', 's');
	var chsmx	= eval(f['chsmx'].value); //f['chsmx' +index].value;
/*
			<input name=".rtc" type=hidden value="2:single:1" ID="Hidden1">	
			<input name=".rtc" type=hidden value="5:double:2" ID="Hidden1">
			
			<input type="hidden" name=".roomconf" value="0:2">
			<input type="hidden" name=".roomconf" value="1:1">
			<input type="hidden" name=".roomconf" value="2:1">
			<input type="hidden" name=".roomconf" value="2:2">
*/	
	
	var roomARR_	= getARRAY(f['.rtc']);
	var rINFO		= roomARR_[f['.chld_rtx' +index].value].value.split(':');
	var childMX		= eval(rINFO[2]);
		
	childMX = (childMX <chsmx)?childMX:chsmx;
	var chCODE_ = ((label =='.inf')?2:7) +':';

	if(f['.roomconf'] !=null){
		var currMX_		= 1;
		var roomCnfARR_	= getARRAY(f['.roomconf']);
		if(roomCnfARR_.length != null){
			for(k = 0;k <roomCnfARR_.length; k++)
				if(roomCnfARR_[k].value.indexOf(chCODE_) ==0){
					chCOUNT_ = eval(roomCnfARR_[k].value.split(':')[2]);
					
					if(currMX_ <chCOUNT_) currMX_ = chCOUNT_;
				}	
		}	

		if(currMX_ <childMX) childMX = currMX_;		
	}

	if(f[fn_].options[f[fn_].selectedIndex].value >childMX)	sel_select(f[fn_], childMX);
	
	val = f[fn_].options[f[fn_].selectedIndex].value;

	if((label =='.inf') && (f['.ch' +index].options[f['.ch' +index].selectedIndex].value >(childMX -val)))
		sel_select(f['.ch' +index], (childMX -val))
	else if((label =='.ch') && (f['.inf' +index].options[f['.inf' +index].selectedIndex].value >(childMX -val)))
		sel_select(f['.inf' +index], (childMX -val));
 };

function touch_total(f, val, sufix, sindex, stindex, rtindex, tindex, rpindex){
	/*
	alert('sufix:' +sufix);
	alert('sindex:' +sindex);
	alert('stindex:' +stindex);
	alert('rtindex:' +rtindex);
	alert('tindex:' +tindex);
	alert('rpindex:' +rpindex);
	*/

	var total_ =0;
	var exp_ =(f['price_exp']!=null)?f['price_exp'].value:PRICE_EXP;	
	
	for(j=0; j<= stindex; j++){		
		//sufix +j +rtindex;
		
		if((f[sufix +j +rtindex].length ==null) &&f[sufix +j +rtindex].checked)
			total_ += eval(f[sufix +j +rtindex].value);
		else
			for(k=0; k<f[sufix +j +rtindex].length; k++)
				if(f[sufix +j +rtindex][k].checked)	total_ += eval(f[sufix +j +rtindex][k].value);
	}
	total_ =(Math.round(100*total_))/100;
	
	f[sufix +rtindex].value =total_;	
	
	/*
	var ctrp =document.getElementById(sufix +'x' +rtindex);
	ctrp.setAttribute('value', total_);
	*/
	var total_		=0;
	var total_str_	="";

	for(j=1; j<= tindex; j++) total_ +=eval(f[sufix +j].value);
	total_			= (Math.round(100*total_))/100;

	var numb_str =new String(total_).split('.');	

	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_' +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';	
	
		f['.jbookings_' +sufix].value	= jour_p;
		f['t' +sufix].value				= total_;
	
		total_str_ =total_str_ +'(' +f['.jbookings_str_' +sufix].value.replace("[x]", exp_.replace("[x]", jour_p)) +')';
	};

	changeContent(sufix +'_total', total_str_, 'text');
	
//	selFld(f, '.rps_' +sindex, 'r', f['.rps_' +sindex].value);
//	alert('touch_total -->> .rps_' +sindex +'=' +f['.rps_' +sindex]);	
//	f['.bookplan_' +sindex +rtindex].value = f['.rpn_' +rpindex].value;

	touch_booking(f, sufix, stindex, tindex);
 }
 
function touch_booking(f, sufix, stindex, tindex){
	var rp_info ='';
/**/	
	var rp_lab = f['rental_label'].value;
	var rps_lab = f['rentals_label'].value;
//	alert('touch_booking ..> [.bookplan_' +j +k +'] f[s' +sufix +j +']=' +f['s' +sufix +j].value);
	for(k=1; k<=tindex; k++){
		for(j=0; j<=stindex; j++){
			if(j >0) rp_info +=', ';
				
			rp_info += (eval(f['s' +sufix +j].value) ==1)?rp_lab.replace('[rp]', f['.bookplan_' +j +k].value):rps_lab.replace('[rp]', f['.bookplan_' +j +k].value).replace('[x]', f['s' +sufix +j].value);			
			rp_info += '(' +f['sn' +sufix +j].value +')';
		}
		
		if(rp_info !='') rp_info +=';';
	}

	f['.bookings_' +sufix].value =rp_info;
	
//	alert('touch_booking ..> f[".bookings_' +sufix +'"]=' +rp_info);
}  

function touch_subtotal(f, sufix, sindex, rtindex, rpindex){
	var total_ =0;
	var exp_ =(f['price_exp']!=null)?f['price_exp'].value:PRICE_SHT_EXP;

	for(j=1; j<=rtindex; j++){
		var items =f[sufix +sindex +j];
		
		if(items.length ==null){
			if(items.checked){
				total_ += eval(items.value);
				//alert(sufix +sindex +j +'=' +items.value);
			}
		}else
			for(k=0; k<=rpindex; k++){
				//alert(sufix +sindex +j +'[' +k +']=' +items[k].value +' ' +items[k].checked);
				
				if((items[k] != null) && (items[k].checked)) total_ += eval(items[k].value);
				
				//alert(sufix +sindex +j +'[' +k +']=' +items[k].value +' ' +items[k].checked);				 
			}
	}	
	total_ =(Math.round(100*total_))/100;

	var numb_str =new String(total_).split('.');	

	if(numb_str.length ==1)
		total_ =total_ +'.00'
	else if((numb_str.length ==2)&&(numb_str[1].length ==1))
		total_ =total_ +'0';
	
	total_ =exp_.replace("[x]", total_);
	
	changeContent('s_' +sufix +sindex, total_, 'text');
 }
  
 function touch_price_pos(f, sufix, ppos){
//	alert('-->> touch_price_pos: arguments.length=' +arguments.length);
//	alert('-->> touch_price_pos: arguments.length=' +arguments[arguments.length -1]);
	
	if(f['pcoords_' +sufix] !=null){
		ccoords = f['pcoords_' +sufix].value;
		cparts  = ppos.split('.');
	
		parts	= ccoords.split(';');
		if((ccoords.lastIndexOf(cparts[0] +'.') !=-1) && (parts.length !=null)){	
			ccoords ='';
			
			for(j=0; j<parts.length; j++)
				if(parts[j].lastIndexOf(cparts[0] +'.') ==-1){
					if(ccoords !='') ccoords +=';';
	
					ccoords +=parts[j];
				}
		}
		
		if(ccoords !='') ccoords +=';';
		ccoords +=ppos;
	
		f['pcoords_' +sufix].value = ccoords;
	}
	
	if(arguments.length <3) return false;
	
	var prov_subKEY = arguments[arguments.length -1];
	
	if(f['prvKEYs_' +sufix] !=null){
		keys_	= f['prvKEYs_' +sufix].value;
		kpartArr= prov_subKEY.split('_');
		
		kpart_	= kpartArr[0] +'_' +kpartArr[1] +'_' +kpartArr[2] +'_';
//		alert('-->> touch_price_pos: kpart_=' +kpart_);			
		parts	= keys_.split(';');
		if((keys_.lastIndexOf(kpart_) !=-1) && (parts.length !=null)){	
			keys_ = '';

			for(j=0; j<parts.length; j++)
				if(parts[j].lastIndexOf(kpart_) ==-1)
					keys_ += (keys_ =='')?parts[j]:';' +parts[j];
		}
		
		keys_ += (keys_ =='')?prov_subKEY:';' +prov_subKEY;
		
		f['prvKEYs_' +sufix].value = keys_;
	}	
	
//	alert('-->> touch_price_pos: f[prvKEYs_' +sufix +'].value=' +f['prvKEYs_' +sufix].value);
//	alert('-->> touch_price_pos: f[pcoords_' +sufix +'].value=' +f['pcoords_' +sufix].value);	
//	alert('-->> touch_price_pos: ' +prov_subKEY);
 }
 
 function touch_hrentplan(idhotel, rpcount_){
	var rp =document.getElementById('rpd_' +idhotel +'_0');
	
	if(rp != null){
		var shw =(rp.style.display == 'none');
		
		for(k=0; k <=rpcount_ ;k++){
			rp =document.getElementById('rpd_' +idhotel +'_' +k);
			rp.style.display = (shw)?"":"none";
		}
	}
 }
 
function set_rd(f){
	var rtcount =eval(f['rtypes_count'].value);
	var acc =f['.accs'].options[f['.accs'].selectedIndex].value.split(',');

	var infs=eval(f['.infs'].options[f['.infs'].selectedIndex].value);
	var chs =eval(f['.chs'].options[f['.chs'].selectedIndex].value);
		
	var rd_ ='';

	var vinfs	=0;
	var vchs	=0;
		
	for(i=0; i <acc.length; i++){			
		if(eval(acc[i]) >0){
			var parts =f['rtc' +i].value.split(':');
			var cap	 =eval(parts[2]);

			for(j=1;j <rtcount; j++){					
				var parts1 =f['rt' +j].value.split(':');
					
				if(eval(parts1[2]) ==cap){
					var mx =eval(f['chsmx' +j].value);

					if(rd_ !='') rd_ +=';';
					rd_ +=parts1[0] +',' +acc[i] +',' +cap +',';
						
					if(infs ==0){
						rd_ +='0'
					}else if(infs >=mx){
						infs -=mx;
						rd_ += mx
						mx	 =0;
					}else if(mx >0){
						rd_ += mx -infs;
						mx	 = mx -infs;
						infs =0;
					}
						
					rd_ +=':';
						
					if(chs ==0){
						rd_ +='0'
					}else if(chs >=mx){
						chs -=mx;
						rd_ += mx
						mx	 =0;
					}else if(mx >0){
						rd_ += mx -chs;
						mx	 = mx -chs;
						chs =0;
					}

					break;
				}
			}
		}
	}
	
	if(f['.rd'] != null) f['.rd'].value =rd_;

	sel_select(f['.infs'], eval(f['.infs'].options[f['.infs'].selectedIndex].value) -infs);
	sel_select(f['.chs'], eval(f['.chs'].options[f['.chs'].selectedIndex].value) -chs);
}

function touch_rd(f, acc){
	var room_details ='';
	var accs =acc.split(',');
	
	//alert('touch_rd ..> ' +acc);
	
	for(i=0; i< accs.length; i++)
		if(accs[i] != '0'){
			//alert('touch_rd ..> f[rtc' +i +']=' +f['rtc' +i].value);
			
			var parts	=f['rtc' +i].value.split(':');
			var class_	=parts[0];
			var cap_	=parts[2];
				
			var jmx = eval(f['rtypes_count'].value);
			
			//alert('touch_rd ..> rtypes_count=' +jmx);
			
			for(j=0; j<=jmx; j++){
				var parts1 =f['rt' +j].value.split(':');

				//alert('touch_rd ..> f[rt' +j +']=' +f['rt' +j].value +'(eval(' +parts1[2] +') == ' +class_ +')=' +(eval(parts1[2]) == class_) +' class=' +class_);
				
				if(eval(parts1[2]) == class_){
					if(room_details != '') room_details += ';';
						
					var chsd_ ='0:0';
					for(k=1; k< accs[i]; k++) chsd_ +='|0:0';
							
					room_details += parts1[0] +',' +accs[i] +',' +cap_ +',' +chsd_ +',' +parts1[1];
						
					break;
				};
			}
		}
	f['.rd'].value	=room_details;
	
	//alert('touch_rd ..> room_details=' +f['.rd'].value);
}

function touch_rd1(f, acc, field_){
	var room_details ='';
	var accs =acc.split(',');
	
	var k =0;
	for(i=0; i< accs.length; i++)
		if(accs[i] != '0'){
			var ch_str='';			
			var parts =f['rtc' +i].value.split(':');

			for(j=1; j<=accs[i]; j++){
				k++;
				
				if(ch_str !='') ch_str +="|";
				ch_str=ch_str +f['.inf' +k].options[f['.inf' +k].selectedIndex].value +":" +f['.ch' +k].options[f['.ch' +k].selectedIndex].value;
			};
			
			if(room_details !='') room_details += ";";
			
			room_details += parts[0] +',' +accs[i] +',' +parts[2] +',' +ch_str;
		}

	if(f[field_] !=null)	f[field_].value	=room_details;
}

function add2Url(url, param, value){
	alert('url:' +url +', param:' +param +'; value:' +value);
}

function clear_childs(f, tindex_){
	for(j=1; j<=tindex_; j++){
		sel_select(f['.inf' +j], 0);
		sel_select(f['.ch' +j], 0);
	}
}