var emailEx = new RegExp('/^(.+)@([^\(\);:,<>]+\.[a-zA-Z]{2,4})/');

function changeVisibility(b_criteria, id)
{
	var span = document.getElementById(id);
//	alert(id +':' +b_criteria +', ' +span);	
	if(span != null)
		span.style.display = (b_criteria)?"":"none";
}

function changeGrpVisibility(b_criteria, id, count){
	for(i=0; i<= count; i++){
//		alert('changeGrpVisibility ..> ' +id +i +' ' +b_criteria);
		
		changeVisibility(b_criteria, id +i);
	}
}

// este es mas general ....
function changeGrpIntvVisibility(b_criteria, id, init_, final_){
	for(i=init_; i<= final_; i++) changeVisibility(b_criteria, id +i);
}

// este es mucho mas general ....
function changeGrpIntvVisibility2(id, init_, final_, count){
	for(i=init_; i<= count; i++) changeVisibility((i<= final_), id +i);
}

function changeEnable(b_criteria, id)
{	
	var span = document.getElementById(id);
//	alert(id +':' +b_criteria +' ' +span);	
	if(span != null)
		span.disabled = b_criteria;		
}

// este es mas general ....
function changeGrpIntvEnable(b_criteria, id, init_, final_){
	for(i=init_; i<= final_; i++) changeEnable(b_criteria, id +i);
}

function changeGrpEnable(b_criteria, id, count){
	for(i=0; i<= count; i++) changeEnable(b_criteria, id +i);
}

function changeContent(id, content, type)
{	
	var elem = document.getElementById(id);
	if(elem != null){
		if(type == 'text')
			elem.innerText	= content
		else if(type = 'html')
			elem.innerHTML	= content;
	}
}

function changeValue(id, val)
{
	var elem = document.getElementById(id);
		
	if(elem != null) {
		elem.setAttribute('value', val);
	}
}

function changeValue_(id, attr, val)
{	
	var elem = document.getElementById(id);
		
	if(elem != null){
		if(elem.getAttribute(attr) != null)
			elem.setAttribute(attr, val);
	}
}

function checkById(id, bcriteria)
{	
	var elem = document.getElementById(id);
	
	//if((elem != null) && (elem.checked != null)) elem.checked = bcriteria;
}

function changeResultFormPg(f, qStr){
	if(qStr != '')
		f.action = f.action + '?' + qStr;

	f.submit();
}

function checkFormRdField(f, fname, tindex){
	if((f[fname] !=null) && (f[fname][tindex] !=null)) f[fname][tindex].checked =true;
}

function checkFormRdinGrpField(f, fname, tindex, count_){
	if(f[fname] !=null)
		if(f[fname].length ==null)
			f[fname].checked =(tindex ==0)
		else
			for(j=0;j <count_; j++){
//				alert('checkFormRdinGrpField ..> f[' +fname +'][' +j +']=');			
				if(f[fname][j] !=null) f[fname][j].checked =(j==tindex);
			}
}

function checkFormRdinGrpFieldByval(f, fname, val){
	if(f[fname] !=null)
		if(f[fname].length ==null)
			f[fname].checked =(f[fname].value ==val)
		else
			for(j=0;j <f[fname].length; j++){
				if(f[fname][j] !=null)	f[fname][j].checked =(f[fname][j].value ==val);
			}
}

function checkFormRdinGrpIntvField(f, fname, bcriteria, iindex, count_){
	iindex = eval(iindex);
	
	if(f[fname] !=null)
		if(f[fname].length ==null)
			f[fname].checked =bcriteria
		else{
			var index_= iindex -count_;

			for(j=index_;j <=iindex; j++){
//				alert('checkFormRdinGrpIntvField ..> f[' +fname +'][' +j +']');
				
				if(f[fname][j] !=null) f[fname][j].checked = bcriteria;
			}
		}
}

function setEnableFormRdinGrpIntvField(f, fname, bcriteria, iindex, count_){
	iindex = eval(iindex);
	
	if(f[fname] !=null)
		if(f[fname].length ==null)
			f[fname].disabled =!bcriteria
		else{
			var index_= iindex -count_;

			for(j=index_;j <=iindex; j++){
//				alert('setEnableFormRdinGrpIntvField ..> f[' +fname +'][' +j +'].disabled=' +!bcriteria);
				if(f[fname][j] !=null) f[fname][j].disabled = !bcriteria;
			}
		}
}

function reverseEnableFormRdinGrpIntvField(f, fname, iindex, count_){
	iindex = eval(iindex);
//	alert('reverseEnableFormRdinGrpIntvField ..> count_=' +count_);
	if(f[fname] !=null)
		if(f[fname].length ==null)
			f[fname].disabled =!f[fname].disabled
		else{
			var index_= iindex -count_;

			for(j=index_;j <=iindex; j++){
//				alert('reverseEnableFormRdinGrpIntvField ..> f[' +fname +'][' +j +'].disabled=' +!f[fname].disabled);
				if(f[fname][j] !=null) f[fname][j].disabled = !f[fname].disabled;
			}
		}
}

function reverseVisibility(id)
{
	var span = document.getElementById(id);
		
	if(span != null)
		span.style.display = (span.style.display == "")?"none":"";
}

function reverseGrpVisibility(b_criteria, id, count){
	for(i=0; i<= count; i++) reverseVisibility(id +i);
}

function emptyField(strField)
{ 
 var empty = true;
 
 for(i = 0;i < strField.length && empty; i++) empty = (strField.charAt(i) == " ");
 
 return empty;
}

function launchCenter(url, name, height, width, sFeatures){
 var str = "height=" + height + ",innerHeight=" + height + ",width="+ width + ",innerWidth=" + width;
  
 if(window.screen) {
   var ah = screen.availHeight - 30;
   var aw = screen.availWidth - 10;

   var xc = (aw - width) / 2;
   var yc = (ah - height) / 2;

   str += ",left=" + xc + ",screenX=" + xc;
   str += ",top=" + yc + ",screenY=" + yc;
 }
 
 var lwnd = window.open(url, name, str + sFeatures);
 
 return lwnd;
}

function fast(){
	win=window.open('/formularios/cannot.htm','LinkWin',"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,height=340,width=460");
	win.focus();
} 

function f(id){
	var d = document.getElementById(id);
		
	d.style.display = (d.style.display == "none")?"block":"none";
}

function shownodes(index)
{   var exp,mItem;

    exp = document.getElementById("expcontrol" + index);
    mItem = document.getElementById("item" + index);
    
    mItem.style.display = (mItem.style.display == "") ? "none" : "";
    exp.innerHTML = (mItem.style.display == "") ? "<img src='/images/_.gif' align='middle'>" : "<img src='/images/+.gif' align='middle'>";
}

function findMatch(selectBox, txtFind) {
     var i;
     var s = "";
              
     for (i=0; i<selectBox.options.length; i++) {
          s = selectBox.options[i].text;
          if (s.indexOf(txtFind.value) == 0) {                         
               selectBox.selectedIndex = i;
               return;
          }
     }
}

function seeMapLnk(f, tafield, otafield, mapprefix_, myvalue){
	var tas		= f[tafield];
	var otas	= '';

	if((f[otafield] != null) && (f[otafield].value != '')) otas = f[otafield].value;
		
	if(tas.length == null) 
		changeVisibility(!tas.checked, mapprefix_ + tas.value)
	else if((otas != '') && (otas != myvalue)){
		changeVisibility(false, mapprefix_+ otas);			
	};

	changeVisibility(true, mapprefix_ + myvalue);
	
	if(f[otafield] != null) f[otafield].value = myvalue;
}

function showMyPrices_(suffix, field, gtype){
	var cols, rowsize;
	//id='p" & Car4CarAgency & i & colindex & k &  & "'"
	cols	= document.getElementById('colSize' + suffix);
	rows	= document.getElementById('rowSize' + suffix);
	zs		= document.getElementById('zSize' + suffix + field.id);		

	if(gtype == 'row')
		for(i=1; i<= cols.value; i++)
			for(j=0; j<= zs.value; j++){
				id = 'p' +suffix +field.id +i +j;
				
				changeVisibility((j == field.value), id);
			};
}

function validate_few_words(f){
	if(emptyField(f.textfield.value)){
		alert('You must insert valids keywords.'); 
		return false;
	}
	
	return true;
}

function validate_few_words_nview(f){
	if(arguments.length <1) return false;
	
	var index_ = (arguments.length >1)?arguments[1]:0;
	
	var textfield	= f['textfield' +index_];
	var action_		= f['.url' +index_].value;
	var i;

	if(emptyField(textfield.value)){
		alert('You must insert valids keywords.'); 
		return false;
	}

	f['textfield'].value = f['textfield' +index_].value;	
	f.action = action_;
	
	return true;
}

function sel_select(select, val){
	var i;

//	alert('sel_select -->(' +select.name +', ' +val +')');
	for(i =0; i <select.options.length; i++){
		select.options[i].selected = (select.options[i].value == val);
	}
}

 function touch_my_elements(id_, count_){	
	var elem_ =document.getElementById(id_ +'_0');
	
	if(elem_ != null){
		var shw =(elem_.style.display == 'none');
		
		for(k=0; k <=count_ ;k++){
			elem_ =document.getElementById(id_ +'_' +k);
			if(elem_ != null) elem_.style.display = (shw)?"":"none";
		}
	}
 }
 
function load_ifprice(ifid_, stid_, url_){
	var if_   = document.getElementById(ifid_);
	var stif_ = document.getElementById(stid_);
	//alert(url_);
	if(stif_.getAttribute('value') == ''){
		stif_.setAttribute('value', 'loaded');		
		if_.setAttribute('src', url_);
	}
	
	if_.style.display = (if_.style.display == "none")?"block":"none";
}

function load_iframe(ifid_, url_){
	var if_   = document.getElementById(ifid_);

	if(if_ == null) return false;
	
	if_.setAttribute('src', url_);
}

function getRdFocus(form, rdname, myval){
	if(form[rdname] !=null){
		var rdg	= form[rdname];

		if(rdg.length ==null)
			rdg.checked	= (eval(rdg.value) == eval(myval));
		else{
			var tval = -1;
						
			if(form['.' +rdname] !=null) tval = form['.' +rdname].value;

			for(i=0; i <rdg.length; i++){				
				rdg[i].checked	= (eval(rdg[i].value) == eval(myval));

				//if(eval(rdg[i].value) == eval(tval)) rdg[i].checked	= false;
			}
		};
		
		if(form['.' +rdname] !=null) form['.' +rdname].value = myval;
	};
}

function setRdFocus(form, rdname, myval){
	if(form[rdname] !=null){
		var rdg	= form[rdname];
		
		if(rdg.length ==null)
			rdg.checked	= (eval(rdg.value) == eval(myval));
		else
			for(i=0; i <rdg.length; i++){				
				rdg[i].checked	= (eval(rdg[i].value) == eval(myval));

				//if(eval(rdg[i].value) == eval(tval)) rdg[i].checked	= false;
			}
	};
}

/// ---------------new......

function saveTEXT(){
	if(arguments.length <3) return false;

	var	f			= arguments[0];
	var	id			= arguments[1];
	var	ncontiner_	= arguments[2];
	
	var span = document.getElementById(id);
//	alert(id +' in ' +ncontiner_);
	if((span !=null) && (f[ncontiner_] !=null))
		f[ncontiner_].value = span.innerHTML;
	else
		alert('document.getElementById(' +id +')=' +span +', f[' +ncontiner_ +']=' +f[ncontiner_]);
}

function addTEXT(){
	if(arguments.length <3) return false;

	var	f				= arguments[0];
	
	var continerID		= arguments[1];
	var targetTEXT		= arguments[2];

	var rEXP_list		= (arguments.length >3)?arguments[3]:'';
	var addingTIMEs		= (arguments.length >5)?eval(arguments[5]):1;
	var fieldVAL_list	= (arguments.length >6)?arguments[6]:'';
	
	var span = document.getElementById(continerID);
//	alert(rEXP_list +' ' +continerID);
	if(span !=null){
		var i;
		var rexpARRAY	= rEXP_list.split(':');
		var splitCHAR	= ((arguments.length >4) && (arguments[4] !=''))?arguments[4]:'=';
		var auxTEXT		= targetTEXT;
		var auxfVAL_list= fieldVAL_list;
		
		for(i=0; i <rexpARRAY.length; i++){
			var rexpPARTs = rexpARRAY[i].split(splitCHAR);
			var regEx = new RegExp (rexpPARTs[0], 'gi') ;

			auxTEXT = auxTEXT.replace(regEx, rexpPARTs[1]);
			fieldVAL_list = fieldVAL_list.replace(regEx, rexpPARTs[1]);
		}

		for(i=1; i <=addingTIMEs; i++) span.innerHTML += auxTEXT;
		
		if(fieldVAL_list !=''){
			var fieldARRAY = fieldVAL_list.split('|');
			var auxfARRAY  = auxfVAL_list.split('|');
			
			for(i=0; i <fieldARRAY.length; i++){
				var pARTs = fieldARRAY[i].split('=');
				var pARTs2= auxfARRAY[i].split('=');
//				alert('addTEXT-->>' +fieldARRAY[i] +', length=' +pARTs.length);				
				selFld(f, pARTs[0], pARTs[2], pARTs2[1]);
				
				changeEnable((((pARTs.length >3)) && (pARTs[3].indexOf('/d') !=-1)), pARTs[0]);
			}			
		}
//		alert('addTEXT -->>' +auxTEXT);
//		if(continerID.indexOf('.staccSEASON') !=-1) alert(auxTEXT);
//		if(continerID.indexOf('.tpckPRICE_') !=-1) alert('addTEXT -->>' +auxTEXT);
	}
}

function replaceTEXT(){
	if(arguments.length <3) return false;

	var	f				= arguments[0];
	
	var continerID		= arguments[1];
	var targetTEXT		= arguments[2];

	var rEXP_list		= (arguments.length >3)?arguments[3]:'';
	var splitCHAR		= ((arguments.length>4) && (arguments[4] !=''))?arguments[4]:'=';
	var addingTIMEs		= (arguments.length >5)?eval(arguments[5]):1;
	var fieldVAL_list	= (arguments.length >6)?arguments[6]:'';
	
	var span = document.getElementById(continerID);
	if(span !=null){
		var i;
		var rexpARRAY	= rEXP_list.split(':');
		
		var auxTEXT = targetTEXT;
		var auxfVAL_list= fieldVAL_list;
		if(auxTEXT !=""){
			for(i=0; i <rexpARRAY.length; i++){
				var rexpPARTs = rexpARRAY[i].split(splitCHAR);
				var regEx = new RegExp (rexpPARTs[0], 'gi') ;

				auxTEXT		 = auxTEXT.replace(regEx, rexpPARTs[1]);
				fieldVAL_list= fieldVAL_list.replace(regEx, rexpPARTs[1]);			
			}
		}								

		span.innerHTML = auxTEXT;

		if(fieldVAL_list !=''){
			var fieldARRAY = fieldVAL_list.split('|');
			var auxfARRAY  = auxfVAL_list.split('|');
			for(i=0; i <fieldARRAY.length; i++){
				var pARTs = fieldARRAY[i].split('=');
				var pARTs2= auxfARRAY[i].split('=');

				selFld(f, pARTs[0], pARTs[2], pARTs2[1]);
				
				changeEnable((((pARTs.length >3)) && (pARTs[3].indexOf('/d') !=-1)), pARTs[0]);
			}			
		}
		
//		if(continerID.indexOf('.tpckPRICE_') !=-1) alert('replaceTEXT -->>' +auxTEXT);
//		if((continerID.indexOf('.speriod') !=-1) || (continerID.indexOf('.seas') !=-1) || (continerID.indexOf('.cADDprCOUNT') !=-1)) alert(auxTEXT);
//		if(continerID.indexOf('.craccCOSTtd') !=-1) alert(auxTEXT);
	}
}

function putSELECT(){
	if(arguments.length <3) return false;

	var f		= arguments[0];
	var selNAME = arguments[1];
	var listNAME= arguments[2];

//	alert('putSELECT -->>' +listNAME +'=' +f[listNAME]);
	
	var currVAL	= (arguments.length >3)?arguments[3]:0;
	var wthOTHER= ((arguments.length >4) && (listNAME != 'NUMERIC'))?arguments[4]:false;
	var action	= (arguments.length >5)?' onChange="' +arguments[5] +'"':'';
	var state	= (arguments.length >7)?' ' +arguments[7]:'';
	var putRESULT_= ((arguments.length >8) && (arguments[8] !=''))?(arguments[8] =='/p'):true;
	var addROWs_= (arguments.length >10)?arguments[10]:'';

	var stream = '';
	
	var i;

	if(listNAME == 'NUMERIC'){	
		var nCOUNT	= (arguments.length >6)?arguments[6]:0;
		var fINDEX_ = (arguments.length >9)?eval(arguments[9]):0;

		if(nCOUNT ==0) return false;
		
		for(i=fINDEX_; i <=nCOUNT; i++)			
			stream += '<OPTION value="' +i +'"' +((i ==currVAL)?' SELECTED':'') +'>' +i +'</OPTION>';
	}else{				
		if((f[listNAME] !=null) && (!emptyField(f[listNAME].value))){
			var optionPARTs;
			var listVALs = addROWs_ +((addROWs_ !='')?':':'') +f[listNAME].value;
			var selOPTIONs = listVALs.split(':');

			for(i=0; i <selOPTIONs.length; i++){
				optionPARTs = selOPTIONs[i].split('|');
				
				if(optionPARTs[0].indexOf('*') !=-1){
					pARTs = optionPARTs[0].split('*');
					checked_ = (pARTs[0] ==currVAL);
				}else
					checked_ = (optionPARTs[0] ==currVAL);
//				if(listNAME.indexOf('.seasons') !=-1) alert(selOPTIONs[i] +' checked=' +checked_ +' ' +currVAL);	
				stream += '<OPTION value="' +optionPARTs[0] +'"' +((checked_)?' SELECTED':'') +'>' +optionPARTs[1] +'</OPTION>';
			}
		};			
	};
	
	if(stream !=''){
		stream = '<SELECT id="' +selNAME +'" name="' +selNAME +'"' +action +state +'>' +stream;
		stream += (wthOTHER)?'<OPTION value=-1><--- OTHER --->':'';			
		stream += '</SELECT>';		
	}
//	alert('putSELECT -->>' +stream);
//	if(selNAME.indexOf('.expack') !=-1) alert('putSELECT -->> ' +stream);
	
//	alert('putSELECT -->>' +putRESULT_);
	
	if(putRESULT_)
		document.write(stream)
	else
		return stream;
}

function putCHECKs(){
	if(arguments.length <3) return false;

	var f		= arguments[0];
	var fieldNAME = arguments[1];
	var listNAME= arguments[2];
	
	var currVAL	= (arguments.length >3)?arguments[3]:0;
	var action	= (arguments.length >4)?' onClick="' +arguments[4] +'"':'';
	var state	= (arguments.length >5)?' ' +arguments[5]:'';
	var sameNAME= (arguments.length >6)?' ' +arguments[6]:false;
	var colCOUNT= (arguments.length >7)?' ' +arguments[7]:1;
	var putRESULT_= (arguments.length >8)?(arguments[8] =='/p'):true;

	var stream = '<TABLE border=0 cellpadding=0 cellspaccing=0><TR>'; 

	var i;	
	var rcolCOUNT = 0;
	var checked_ = '';
//			alert('f[' +listNAME +']=' +f[listNAME].value);
	if(listNAME =='NUMERIC'){
		var numCOUNT	= (arguments.length >9)?arguments[9]:1;	
		var fieldSUFIX	= (arguments.length >10)?arguments[10]:'';

		for(i=1; i <=numCOUNT; i++){
			fldNAME = (sameNAME)?fieldNAME:fieldNAME +i;
			stream += '<TD class="Data8"><input type=checkbox id="' +fldNAME +'" name="' +fldNAME +'" value="' +i +'"' +action +state +'>' +fieldSUFIX +i +'</TD>';

			rcolCOUNT++;
			if(rcolCOUNT ==colCOUNT){
				rcolCOUNT = 0;
				stream += '</TR><TR>';
			}
		}
		
		stream += '<input type=hidden name=' +fieldNAME +'COUNT value="' +numCOUNT +'">';
		
	}else if(f[listNAME] !=null){
		var pARTs, pARTs2;
		var listPARTs = f[listNAME].value.split(':');
		var fldNAME;
//		alert('putCHECKs-->' +f[listNAME].value);
		for(i=0; i <listPARTs.length; i++){
			pARTs = listPARTs[i].split('|');

			if(pARTs[0].indexOf('*') !=-1){
				pARTs2 = pARTs[0].split('*');
				
				checked_ = (currVAL.indexOf('[' +pARTs2[0] +']') !=-1)?' checked':'';
			}else
				checked_ = (currVAL.indexOf('[' +pARTs[0] +']') !=-1)?' checked':'';
			
			fldNAME = (sameNAME)?fieldNAME:fieldNAME +i;
			stream += '<TD class="Data8"><input type=checkbox id="' +fldNAME +'" name="' +fldNAME +'" value="' +pARTs[0] +'"' +action +state +checked_ +'>' +pARTs[1] +'</TD>';

			rcolCOUNT++;
			if(rcolCOUNT ==colCOUNT){
				rcolCOUNT = 0;
				stream += '</TR><TR>';
			}
		}
		
		stream += '<input type=hidden name=' +fieldNAME +'COUNT value="' +listPARTs.length +'">';
	};			
	
	stream += '</TR></TABLE>';
//	alert(stream);
	if(putRESULT_)
		document.write(stream)
	else
		return stream;
}

function CAL(index_, subindex_){
	if(arguments.length <3) return false;
		
	var f		 = arguments[0];
	var index_	 = arguments[1];
	var subindex_= arguments[2];
	var prefix_  = '.' +((arguments.length >3)?arguments[3]:'');
	var verbose_ = ((arguments.length >4)?arguments[4]:true);
	
	index_		+= (subindex_ !='')?'_' +subindex_:'';
	//alert('f[' +prefix_ +'cost' +index_ +'].value=');	

	if(f[prefix_ +'cost' +index_] !=null){
		if(emptyField(f[prefix_ +'cost' +index_].value) || isNaN(f[prefix_ +'cost' +index_].value)){
			if(verbose_){
				alert('Insert a valid COST.');
				
				f[prefix_ +'cost' +index_].select();
				f[prefix_ +'cost' +index_].focus();				
			}
						
			return false;
		}	
		
		var ourp_		= (!isNaN(f['.gpercent'].value))?get_float_numb(f['.gpercent'].value):'0.00';
		var cost_		= eval(f[prefix_ +'cost' +index_].value);
		var our_		= eval(f[prefix_ +'our' +index_].value);		
		
		if(f[prefix_ +'ourperc' +index_] !=null)
			if(emptyField(f[prefix_ +'ourperc' +index_].value) || isNaN(f[prefix_ +'ourperc' +index_].value) || eval(f[prefix_ +'ourperc' +index_].value) <=0)
				f[prefix_ +'ourperc' +index_].value = (!isNaN(f['.gpercent'].value))?get_float_numb(f['.gpercent'].value):'0.00';
			else
				ourp_	= eval(f[prefix_ +'ourperc' +index_].value);				
		
		if(cost_ >0.00)
			our_ = real_round(((cost_ *100.00)/(100.00 -ourp_)), 2)			
		else
			cost_ = (1 -(ourp_/100.00)) *our_;
		
		f[prefix_ +'cost' +index_].value	= get_float_numb(cost_);
		f[prefix_ +'our' +index_].value		= get_float_numb(our_);
		
		if(f[prefix_ +'specialperc' +index_] !=null){
			if(emptyField(f[prefix_ +'specialperc' +index_].value) || isNaN(f[prefix_ +'specialperc' +index_].value) || eval(f[prefix_ +'specialperc' +index_].value) <=0){
				f[prefix_ +'specialperc' +index_].value = '0.00';
				f[prefix_ +'special' +index_].value = '0.00';
			}else{
				var specialp_	= eval(f[prefix_ +'specialperc' +index_].value);
				
				specialp_ = (specialp_ <ourp_)?ourp_-specialp_:0;
				
				f[prefix_ +'special' +index_].value = get_float_numb(real_round(((cost_ *100.00)/(100.00 -specialp_)), 2));
			}
		}
		
		var onepax_	= (cost_/2.00);
		var singlep_= (f[prefix_ +'sperc' +index_] !=null)?eval(f[prefix_ +'sperc' +index_].value):0.00;
		var triplep_= (f[prefix_ +'tperc' +index_] !=null)?eval(f[prefix_ +'tperc' +index_].value):0.00;
		
		if(f[prefix_ +'scost' +index_] !=null){
			if(emptyField(f[prefix_ +'scost' +index_].value) || isNaN(f[prefix_ +'scost' +index_].value) || ((eval(f[prefix_ +'scost' +index_].value) <=0) && (eval(f[prefix_ +'sour' +index_].value) <=0) && (singlep_ <=0.00))){
				//if(f[prefix_ +'sperc' +index_] !=null) f[prefix_ +'sperc' +index_].value = '0.00';
				f[prefix_ +'scost' +index_].value = '0.00';
				f[prefix_ +'sour' +index_].value = '0.00';
				f[prefix_ +'ssoffperc' +index_].value = '0.00';
				f[prefix_ +'ssoff' +index_].value = '0.00';
			}else{				
				var sprice_	= (singlep_ >0.00)?onepax_ +(onepax_ *(singlep_/100.00)):eval(f[prefix_ +'scost' +index_].value);
				var sour_	= eval((singlep_ >0.00)?0.00:f[prefix_ +'sour' +index_].value);		
			
				if(sprice_ >0.00)
					sour_ = real_round(((sprice_ *100.00)/(100.00 -ourp_)), 2)
				else					
					sprice_ = (1 -(ourp_/100.00)) *sour_;
				
				f[prefix_ +'scost' +index_].value	= get_float_numb(sprice_);
				f[prefix_ +'sour' +index_].value	= get_float_numb(sour_);
				if(f[prefix_ +'sperc' +index_] !=null) f[prefix_ +'sperc' +index_].value = get_float_numb(real_round(singlep_, 2));
				
				if(emptyField(f[prefix_ +'ssoffperc' +index_].value) || isNaN(f[prefix_ +'ssoffperc' +index_].value) || eval(f[prefix_ +'ssoffperc' +index_].value) <=0){
					f[prefix_ +'ssoffperc' +index_].value = '0.00';
					f[prefix_ +'ssoff' +index_].value = '0.00';
				}else{
					var specialp_	= eval(f[prefix_ +'ssoffperc' +index_].value);					
					specialp_ = (specialp_ <ourp_)?ourp_-specialp_:0;
					
					f[prefix_ +'ssoff' +index_].value = get_float_numb(real_round(((sprice_ *100.00)/(100.00 -specialp_)), 2));
				}
			}
		}
		
		if(f[prefix_ +'tcost' +index_] !=null){
			if(emptyField(f[prefix_ +'tcost' +index_].value) || isNaN(f[prefix_ +'tcost' +index_].value) || ((eval(f[prefix_ +'tcost' +index_].value) <=0) && (eval(f[prefix_ +'tour' +index_].value) <=0) && (triplep_ <=0.00))){
				f[prefix_ +'tcost' +index_].value = '0.00';
				f[prefix_ +'tour' +index_].value = '0.00';
				f[prefix_ +'tsoffperc' +index_].value = '0.00';
				f[prefix_ +'tsoff' +index_].value = '0.00';
			}else{
				var tprice_	= (triplep_ >0.00)?cost_ +(onepax_ *(1 -(triplep_/100.00))):eval(f[prefix_ +'tcost' +index_].value);
				var tour_	= eval((singlep_ >0.00)?0.00:f[prefix_ +'tour' +index_].value);		

				if(tprice_ >0.00)
					tour_ = real_round(((tprice_ *100.00)/(100.00 -ourp_)), 2)					
				else
					tprice_ = (1 -(ourp_/100.00)) *tour_;

				f[prefix_ +'tcost' +index_].value	= get_float_numb(tprice_);
				f[prefix_ +'tour' +index_].value	= get_float_numb(tour_);				
				if(f[prefix_ +'sperc' +index_] !=null) f[prefix_ +'tperc' +index_].value = get_float_numb(real_round(triplep_, 2));
				
				if(emptyField(f[prefix_ +'tsoffperc' +index_].value) || isNaN(f[prefix_ +'tsoffperc' +index_].value) || eval(f[prefix_ +'tsoffperc' +index_].value) <=0){
					f[prefix_ +'tsoffperc' +index_].value = '0.00';
					f[prefix_ +'tsoff' +index_].value = '0.00';
				}else{
					var specialp_	= eval(f[prefix_ +'tsoffperc' +index_].value);
					specialp_ = (specialp_ <ourp_)?ourp_-specialp_:0;
					
					f[prefix_ +'tsoff' +index_].value = get_float_numb(real_round(((tprice_ *100.00)/(100.00 -specialp_)), 2));
				}				
			}
		}

		if(f[prefix_ +'chcost' +index_] !=null){
			cost_	= eval(f[prefix_ +'chcost' +index_].value);
			our_	= eval(f[prefix_ +'chour' +index_].value);	
					
			if(cost_ >0.00)
				our_ = real_round(((cost_ *100.00)/(100.00 -ourp_)), 2)			
			else
				cost_ = (1 -(ourp_/100.00)) *our_;	

			f[prefix_ +'chcost' +index_].value = get_float_numb(cost_);
			f[prefix_ +'chour' +index_].value	= get_float_numb(our_);

			if(f[prefix_ +'chsoffperc' +index_] !=null){
				if(emptyField(f[prefix_ +'chsoffperc' +index_].value) || isNaN(f[prefix_ +'chsoffperc' +index_].value) || eval(f[prefix_ +'chsoffperc' +index_].value) <=0){
					f[prefix_ +'chsoffperc' +index_].value	= '0.00';
					f[prefix_ +'chsoff' +index_].value		= '0.00';
				}else{
					var chspecialp_	= eval(f[prefix_ +'chsoffperc' +index_].value);
					
					chspecialp_ = (chspecialp_ <ourp_)?ourp_-chspecialp_:0;					
					f[prefix_ +'chsoff' +index_].value = get_float_numb(real_round(((cost_ *100.00)/(100.00 -chspecialp_)), 2));
				}
			}		
		}
		
		var subprefixARR_ = "ch".split(',');
/*		Extra NIGHTs...		*/
		if(f[prefix_ +'extcost' +index_] !=null){
			cost_	= eval(f[prefix_ +'extcost' +index_].value);
			our_	= eval(f[prefix_ +'extour' +index_].value);
			
			if(cost_ >0.00)
				our_ = real_round(((cost_ *100.00)/(100.00 -ourp_)), 2)			
			else
				cost_ = (1 -(ourp_/100.00)) *our_;
			
			f[prefix_ +'extcost' +index_].value = get_float_numb(cost_);
			f[prefix_ +'extour' +index_].value	= get_float_numb(our_);

			if(f[prefix_ +'extsoffperc' +index_] !=null){
				if(emptyField(f[prefix_ +'extsoffperc' +index_].value) || isNaN(f[prefix_ +'extsoffperc' +index_].value) || eval(f[prefix_ +'extsoffperc' +index_].value) <=0){
					f[prefix_ +'extsoffperc' +index_].value	= '0.00';
					f[prefix_ +'extsoff' +index_].value		= '0.00';
				}else{
					var extspecialp_	= eval(f[prefix_ +'extsoffperc' +index_].value);
					
					extspecialp_ = (extspecialp_ <ourp_)?ourp_-extspecialp_:0;					
					f[prefix_ +'extsoff' +index_].value = get_float_numb(real_round(((cost_ *100.00)/(100.00 -extspecialp_)), 2));
				}
			}		
		}
	
		if(f[prefix_ +'exncost' +index_] !=null){
			cost_	= eval(f[prefix_ +'exncost' +index_].value);
			our_	= eval(f[prefix_ +'exnour' +index_].value);
			
			if(cost_ >0.00)
				our_ = real_round(((cost_ *100.00)/(100.00 -ourp_)), 2)			
			else
				cost_ = (1 -(ourp_/100.00)) *our_;
				
			f[prefix_ +'exncost' +index_].value = get_float_numb(cost_);
			f[prefix_ +'exnour' +index_].value	= get_float_numb(our_);

			if(f[prefix_ +'exnsoffperc' +index_] !=null){
				if(emptyField(f[prefix_ +'exnsoffperc' +index_].value) || isNaN(f[prefix_ +'exnsoffperc' +index_].value) || eval(f[prefix_ +'exnsoffperc' +index_].value) <=0){
					f[prefix_ +'exnsoffperc' +index_].value	= '0.00';
					f[prefix_ +'exnspecial' +index_].value		= '0.00';
				}else{
					var exnspecialp_	= eval(f[prefix_ +'exnsoffperc' +index_].value);
					
					exnspecialp_ = (exnspecialp_ <ourp_)?ourp_-exnspecialp_:0;					
					f[prefix_ +'exnspecial' +index_].value = get_float_numb(real_round(((cost_ *100.00)/(100.00 -exnspecialp_)), 2));
				}
			}		
		}
		
		if(f[prefix_ +'exnscost' +index_] !=null){
			cost_	= eval(f[prefix_ +'exnscost' +index_].value);
			our_	= eval(f[prefix_ +'exnsour' +index_].value);
			
			if(cost_ >0.00)
				our_ = real_round(((cost_ *100.00)/(100.00 -ourp_)), 2)			
			else
				cost_ = (1 -(ourp_/100.00)) *our_;	

			f[prefix_ +'exnscost' +index_].value = get_float_numb(cost_);
			f[prefix_ +'exnsour' +index_].value	 = get_float_numb(our_);
			
			if(emptyField(f[prefix_ +'exnssoffperc' +index_].value) || isNaN(f[prefix_ +'exnssoffperc' +index_].value) || eval(f[prefix_ +'exnssoffperc' +index_].value) <=0){
				f[prefix_ +'exnssoffperc' +index_].value= '0.00';
				f[prefix_ +'exnssoff' +index_].value	= '0.00';
			}else{
				var specialp_	= eval(f[prefix_ +'exnssoffperc' +index_].value);					

				specialp_ = (specialp_ <ourp_)?ourp_-specialp_:0;				
				f[prefix_ +'exnssoff' +index_].value = get_float_numb(real_round(((cost_ *100.00)/(100.00 -specialp_)), 2));
			}
		}
		
		if(f[prefix_ +'exntcost' +index_] !=null){
			cost_	= eval(f[prefix_ +'exntcost' +index_].value);
			our_	= eval(f[prefix_ +'exntour' +index_].value);

			if(cost_ >0.00)
				our_ = real_round(((cost_ *100.00)/(100.00 -ourp_)), 2)			
			else
				cost_ = (1 -(ourp_/100.00)) *our_;

			f[prefix_ +'exntcost' +index_].value = get_float_numb(cost_);
			f[prefix_ +'exntour' +index_].value	= get_float_numb(our_);

			if(emptyField(f[prefix_ +'exntsoffperc' +index_].value) || isNaN(f[prefix_ +'exntsoffperc' +index_].value) || eval(f[prefix_ +'exntsoffperc' +index_].value) <=0){
				f[prefix_ +'exntsoffperc' +index_].value= '0.00';
				f[prefix_ +'exntsoff' +index_].value	= '0.00';
			}else{
				var specialp_	= eval(f[prefix_ +'exntsoffperc' +index_].value);					

				specialp_ = (specialp_ <ourp_)?ourp_-specialp_:0;					
				f[prefix_ +'exntsoff' +index_].value = get_float_numb(real_round(((cost_ *100.00)/(100.00 -specialp_)), 2));
			}
		}		
	}
			
	return true;
}

function putPANEL(){
	if(arguments.length <2) return false;

	var cellNAME	= arguments[0];
	var panelNAME	= arguments[1];
	var listNAME	= arguments[2];
	var countNAME	= (arguments.length >3)?arguments[3]:'COUNT';
	
	var f = document.forms[0];

	if((f[listNAME] !=null) && (f[panelNAME] !=null) && (f[countNAME] !=null)){
		var pARTs;

		if(f[listNAME].value ==""){
			replaceTEXT(cellNAME, f[panelNAME].value, '_i=' +f[countNAME].value +':n' +f[countNAME].value +'="":v' +f[countNAME].value +'=""');				
			
			return false
		}
		
		replaceTEXT(cellNAME, "", "");
		
		var listPARTs = f[listNAME].value.split(':');
		
		f[countNAME].value = 0;
		
		for(i=0; i <listPARTs.length; i++){
			pARTs = listPARTs[i].split('|');
			
			f[countNAME].value = eval(f[countNAME].value) +1;

			addTEXT(cellNAME, f[panelNAME].value, '_i=' +f[countNAME].value +':n' +f[countNAME].value +'="' +pARTs[1] +'" READONLY:v' +f[countNAME].value +'="' +pARTs[0] +'"');
		}
	};
}

//------------------ new END.....

function f4(sufix_, total_, bound_, img_id, src_1, src_2){
	var fitem_ =document.getElementById(sufix_ +(total_ -1));

	if(fitem_ !=null){		
		var v_ = !(fitem_.style.display == "");

		for(i=0; i< total_; i++)
			changeVisibility((i <bound_)?true:v_, sufix_ +i);
	
		var img_ =document.getElementById(img_id);
		
		if(img_ != null) img_.setAttribute('src', (v_)?src_2:src_1);
		
		if(arguments.length >6)
			changeContent(img_id +'txt', (v_)?replaceHTMLtags(arguments[7]):replaceHTMLtags(arguments[6]), 'html');
	}
}

function openUrl2(url_, caption_){
	var txt="/map.asp?name="+url_+"&location="+caption_ , h=(arguments.length >2)?arguments[2]:460,w=(arguments.length >3)?arguments[3]:370,LeftPosition=0,TopPosition=0;
	
	LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;
	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
	win=window.open(txt,"map",settings);
	win.focus();
}

//openUrl2('plantacantu5','Stgo de Cuba, Caletón Blanco')
function openBiggPicture(maplocation, mapcaption, picture, caption_){
	var txt=maplocation+"?map="+mapcaption+"&name="+picture+"&location="+caption_ , h=460,w=370,LeftPosition=0,TopPosition=0;
	
	LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;
	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
	win=window.open(txt,"map",settings);
	win.focus();
}

function launchPopup(url_,w_,h_){
	var h=h_,w=w_,LeftPosition=0,TopPosition=0;
	
	LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;
	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
	win=window.open(url_,"map",settings);
}

function getFval(f, name, type){
	var i;
	var val_ =-1;
	
	if(f[name] ==null) return val_;
//	alert('getFval -->>' +name);
	if((type == "s") && (f[name].options.length !=null)){
		if(f[name].multiple){
			val_ = '';
			for(i=0; i<f[name].options.length; i++)
				if(f[name].options[i].selected) val_ += ((val_ !='')?',':'') +f[name].options[i].value;
		}else{
			val_ = f[name].options[f[name].selectedIndex].value;
			}
	}else if(type == "r"){	
//		alert('getFval -->>f[' +name +'].length=' +f[name].length);
	
		if(f[name].length ==null){
			if(f[name].checked) val_ = f[name].value;
		}else{
			val_ = '';
			for(i=0; i<f[name].length; i++)
				if(f[name][i].checked) val_ += ((val_ !='')?',':'') +f[name][i].value;
			
//			alert('getFval -->>getFval(' +f.name +', ' +name +', ' +type +')');
		}
	}else if(type == "chk"){
		if(f[name].length ==null){
			if(f[name].checked) val_ = f[name].value;
		}else{
			val_ = '';
			for(i=0; i<f[name].length; i++)
				if(f[name][i].checked) val_ += ((val_ !='')?',':'') +f[name][i].value;
		}
	}else
		val_ = f[name].value;

	return val_;
}

function selFld(f, name, type, val_){
	var i, j;
	
	if(f[name] ==null) return false;

	var field_ = f[name];	
//	if(name.indexOf('.curItwd') !=-1) alert('selFld-->>' +name +', ' +type +', ' +val_);
	if((type == "s") && (field_.length !=null) && (field_.length >0)){
		var fINDEX_ = -1;
		
//		field_.options[field_.selectedIndex].selected = false;
		if(val_.indexOf('][') != -1){
			for(i =0; i <field_.length; i++){
				var fval_ = '[' +((field_.options[i].value.indexOf('*') ==-1)?field_.options[i].value:field_.options[i].value.split('*')[0])+']';
				
				field_.options[i].selected = (val_.indexOf(fval_) !=-1);
				if(field_.options[i].selected) fINDEX_ = i;
			}
		}else			
			for(i =0; i <field_.length; i++){				
				field_.options[i].selected = ((field_.options[i].value.indexOf('*') ==-1)?(field_.options[i].value ==val_):(field_.options[i].value.indexOf(val_) ==0));
//				if(name.indexOf('.rch') ==0) alert('selFld -->>f[' +name +'], ' +field_.options[i].value +'.indexOf(' +val_ +')=' +field_.options[i].value.indexOf(val_));
				if(field_.options[i].selected) fINDEX_ = i;
			}

		//field_.selectedIndex = (fINDEX_ == -1)?0:fINDEX_;
	}else if((type == "r") || (type == "chk")){
		if(field_.length ==null)
			field_.checked =(val_ == field_.value);
		else{
			if(!isNaN(val_) || (val_.indexOf('|') ==-1)){				
				for(i=0; i <field_.length; i++)
					field_[i].checked = ((field_[i].value.indexOf('*') ==-1)?(field_[i].value ==val_):(field_[i].value.indexOf(val_) ==0));
			}else{
				var valARR_ = val_.split('|');
				
				for(i=0; i <field_.length; i++)
					for(j=0; j<valARR_.length; j++){
						field_[i].checked = ((field_[i].value.indexOf('*') ==-1)?(field_[i].value ==valARR_[j]):(field_[i].value.indexOf(valARR_[j]) ==0));
						if(field_[i].checked) break;
					}
			 }
		}
	}else
		field_.value = (isNaN(val_))?replaceHTMLtags(val_):val_;
}

function replaceHTMLtags(val){
	var regExARR = "<BR>:\r,&#34;:\",&#39;:\',&#60;:\<,&#62;:\>,&#92;:\\,&#47;:\/,<nl>: ".split(",");

	var i;
	for(i=0; i <regExARR.length; i++){
		var rePARTs = regExARR[i].split(":");
		
		var regEx = new RegExp (rePARTs[0], 'gi') ;
		val = val.replace(regEx, rePARTs[1]);
	}
	
	return val;
}

function real_round(numb, dpos){
	var div_ = Math.pow(10,dpos);
		
	return (Math.round(div_*(numb)))/div_;
}

function get_float_numb(numb){
	var numb_str =new String(numb).split('.');	

	if(numb_str.length ==1)
		numb =numb +'.00'
	else if((numb_str.length ==2)&&(numb_str[1].length ==1))
		numb =numb +'0';
		
	return numb;
}

function checkReservValidDate(thedate)
{
	var d=new Date(), str="";
	d.setHours(0); d.setMinutes(0); d.setSeconds(0); d.setMilliseconds(0);
	if (thedate < d) 
	 str = "Invalid date.\n";
	return str;
}

function touch_result_item(f, fname, action_){
	var index_ = getFval(f, fname, 'r');	
	if(f['fields_' +index_] != null){
		var fields = f['fields_' +index_].value.split(",");

		if(fields.length ==null)
			changeEnable((action_ =='disable'), fields +'_' +index_)
		else
			for(j=0; j<fields.length; j++)
				changeEnable((action_ =='disable'), fields[j] +'_' +index_);
	}
}

function mustGetRate(f){
	if(f['.grn'] !=null) f['.grn'].value = true;
}

function getARRAY(arrVAR){
	var arr = new Array();
	
	if(arrVAR != null)
		if(arrVAR.length ==null)
			arr[0] = arrVAR
		else
			arr = arrVAR;
		
	return arr;
}

function get_totalNumOffPeople(f){
//	return eval(getFval(f, '.pckadlts', 's')) +eval(getFval(f, '.pckinfs', 's')) +eval(getFval(f, '.pckchs', 's'));
	var r_ = 0;
	var i, j;
	
	if(f['.cr.prefix'] != null){
		var crpFname = '.' +f['.cr.prefix'].value +'.pckpersons';
		
		r_ = eval(getFval(f, crpFname, 's'));
	}else if(f['.st.prefix'] != null){
		var stpFname = '.' +f['.st.prefix'].value +'.pckpersons';
		
		r_ = eval(getFval(f, stpFname, ''));

	}else if(f['.pckadlts'] !=null)
		r_ = eval(getFval(f, '.pckadlts', 's'));
		
	else if(f['.adlts'] !=null){
		r_ = eval(getFval(f, '.adlts', 's'));
/*
		if(f['.r'] !=null){		
			for(i=1, j=getFval(f, '.r', 's'); i <=j; i++) r_ += eval(getFval(f, '.ch' +i, 's'));
		}
*/		
	}

	return r_;	
}

// ROOM SECTION .......... begin
function get_mn_rooms(adults, max_occupation){
	//alert('get_mn_rooms ..>' +adults +', ' +max_occupation +'=' +Math.floor(adults/max_occupation));
	
	//return ((adults % max_occupation) == 0)? adults/max_occupation : ((adults -(adults % max_occupation))/max_occupation) +1;
	return real_rcount(adults, max_occupation);
}
  
function get_rmn_rooms(adults, r_occupation){
	//alert('get_rmn_rooms ..>' +adults +', ' +r_occupation +'=' +Math.floor(adults/r_occupation));
	
	//return ((adults % r_occupation) == 0)? adults/r_occupation : ((adults -(adults % r_occupation))/r_occupation);
	return real_rcount(adults, r_occupation);
}  

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 touch_rooms(select_, lower, upper, val){
	var i;
	
//	alert('touch_rooms-->>touch_rooms(' +select_.name +', ' +lower +', ' +upper +', ' +val +'), select_.options=' +select_.options);
	if(select_.options != null)
		select_.options.length = 0
	else
		select_.options[0] = new Option(lower, lower);
	
	for(i=lower; i <=upper; i++){
		select_.options[select_.length] = new Option(i, i);
	}	

	sel_select(select_, val);
}

function r(f, array_, target, rooms, index, stream, streamval_, continer_){
	var stPREFIX_	= (f['.st.prefix'] !=null)?'.' +f['.st.prefix'].value:'';
	
	var accFname	= stPREFIX_ +'.accs';
	var t			= (array_.length !=null)?array_.length:0;
	
	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 +', streamval_=' +streamval_ +', mt_=' +mt_ +', continer_=' +continer_.name);			
			var regEx2 = new RegExp('r[0-9]*#', 'gi');
//			alert("r(array_, target, " +index +") -->> " +streamval_.replace(regEx2, '0') +'*t:' +target);
			
			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'] !=null)?'.' +f['.st.prefix'].value:'';
	var extPREFIX_	= (f['.st.prefix'] !=null)?'pck':'';
	
	var p_, r_, i, j;

	p_		= get_totalNumOffPeople(f); //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_;
	}
		
	var rFname		= stPREFIX_ +'.r';
	var accFname	= stPREFIX_ +'.accs';
	var maxTARGET_	= 't:';	
	var roomSTREAM_	= f[stPREFIX_ +'.str'].value;
		
//	alert('touch_accomodations -->> f[' +stPREFIX_ +'.str].value=' +f[stPREFIX_ +'.str'].value);
		
	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'));
	
	f[accFname].options.length = 0;

//	alert('touch_accomodations -->>r_=' +r_ +', p_=' +p_ +', rtarr=' +f[stPREFIX_ +'.rtc'] +', ' +f[accFname].options);
	maxTARGET_ += r(f, arr_, p_, r_, 0, '', roomSTREAM_, f[accFname]);
//	alert('touch_accomodations -->>maxTARGET_=' +maxTARGET_);	

	arr_ = new Array();
	
	// 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;

	if(stPREFIX_ !='') touch_stroom_persons_panels(f)
	
	mustGetRate(f);
}

// ROOM SECTION .......... begin

// Esto no lo hice yo....
function validate_email( emailStr ) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		// alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		// alert("The username doesn't seem to be valid.")
		return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		// this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				// alert("Destination IP address is invalid!")
				return false
			}
		}
		return true
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		// alert("The domain name doesn't seem to be valid.")
		return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {
		// alert("The address must end in a three-letter domain, or two letter country.")
		return false
	}

	if (len<2) {
		var errStr="This address is missing a hostname!"
		// alert(errStr)
		return false
	}

	// If we've gotten this far, everything's valid!
	return true;
}

function cardInfoTOUCH(f){
	var total_		= eval(f['.cardTOTAL'].value);
	var vip_total	= 0.00;
	var vip_passengers = 0.00;
	
	if(f['.wthVIP'].checked){
		vip_passengers	= eval(getFval(f, '.vpersons', 's'));
		vip_total		= vip_passengers *eval(f['.vipparr'][f['.vips'].options.selectedIndex].value);

		changeContent('.vipLB', get_float_numb(vip_total), 'html');
		f['.vipp'].value = vip_total;
		
		f['CantProd'].value = eval(f['CantProd'].value) +1;
	}else
		f['CantProd'].value = eval(f['CantProd'].value) -1;
	
	var inc_		= 0.05 *(total_ +vip_total);
	
	total_			= total_ +vip_total +inc_;

	changeContent('.crdINC', get_float_numb(real_round(inc_, 2)), 'html');
	changeContent('.crdTOTAL', get_float_numb(total_), 'html');
	
//	alert('cardInfoTOUCH -->>' +total_);
}

function load_in_iframe(iframeid, url_){
	var iframe = document.getElementById(iframeid);
	
	if(iframe != null) iframe.src = url_;
	
	return true;
}