function isInteger(val) {
		var digits = "1234567890";
		for (var i=0; i < val.length; i++) {
			if (digits.indexOf(val.charAt(i)) == -1) { 
				return false; 
			}
		}
		return true;
	}

function getInt(str,i,minlength,maxlength) {
	for (x=maxlength; x>=minlength; x--) {
		var token = str.substring(i,i+x);
		if (isInteger(token)) {
			return token;
		}
	}
	return null;
}


function getDateFromFormat(val,format) {
	
		val = val+"";
		var format = 'yyyy/MM/dd'+"";
		var i_val = 0;
		var i_format = 0;
		var c = "";
		var token = "";
		var token2= "";
		var x,y;
		var year  = 0;
		var month = 0;
		var date  = 0;
		var bYearProvided = false;
		while (i_format < format.length) {
			// Get next token from format string
			c = format.charAt(i_format);
			token = "";

			while ((format.charAt(i_format) == c) && (i_format < format.length)) {
				token += format.charAt(i_format);
				i_format++;
			}

			// Extract contents of value based on format token
			if (token=="yyyy" || token=="yy" || token=="y") {
				if (token=="yyyy") { x=4;y=4; }// 4-digit year
				if (token=="yy")   { x=2;y=2; }// 2-digit year
				if (token=="y")    { x=2;y=4; }// 2-or-4-digit year
				year = getInt(val,i_val,x,y);
				bYearProvided = true;
				if (year == null) {
					return 0;
					//Default to current year
				}
				if (year.length != token.length){
					return 0;
				}

				i_val += year.length;
			}
			else if (token=="MMM") { // Month name
				month = 0;
				for (var i=0; i<MONTH_NAMES.length; i++) {
					var month_name = MONTH_NAMES[i];
					if (val.substring(i_val,i_val+month_name.length).toLowerCase() == month_name.toLowerCase()) {
						month = i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
					}
				}

				if (month == 0) { return 0; }
				if ((month < 1) || (month>12)) {
					return 0
				}
			}
			else if (token=="MM" || token=="M") {
				x=token.length; y=2;
				month = getInt(val,i_val,x,y);
				if (month == null) { return 0; }
				if ((month < 1) || (month > 12)) { return 0; }
				i_val += month.length;
			}
			else if (token=="dd" || token=="d") {
				x=token.length; y=2;
				date = getInt(val,i_val,x,y);
				if (date == null) { return 0; }
				if ((date < 1) || (date>31)) { return 0; }
				i_val += date.length;
			}
			else {
				if (val.substring(i_val,i_val+token.length) != token) {
					return 0;
				}
				else {
					i_val += token.length;
				}
			}
		}
		// If there are any trailing characters left in the value, it doesn't match
		if (i_val != val.length) {
			return 0;
		}
		// Is date valid for month?

		if (month == 2) {
			// Check for leap year
			if ( ( (year%4 == 0)&&(year%100 != 0) ) || (year%400 == 0) ) { // leap year
				if (date > 29){ return false; }
			}
			else {
				if (date > 28) { return false; }
			}
		}
		if ((month==4)||(month==6)||(month==9)||(month==11)) {
			if (date > 30) { return false; }
		}

		//JS dates uses 0 based months.
		month = month - 1;

		if (bYearProvided==false) {
			//Default to current
			var dCurrent = new Date();
			year = dCurrent.getFullYear();
		}

		var lYear = parseInt(year);
		if (lYear<=20) {
			year = 2000 + lYear;
		}
		else if (lYear >=21 && lYear<=99) {
			year = 1900 + lYear;
		}

		var newdate = new Date(year,month,date,0,0,0);

		return newdate;
}

function handleHttpResponse()
{
	if (http.readyState == 4) {
		var result = trimStr(http.responseText);
		var f = document.forms['cautare'];
		var fsubmit = document.getElementById('fsubmit');
		//alert(result);return false;
		if (result=="11111") {
			fsubmit.src = "static/css/images/bt_cautarenoua_hu.gif";
			f.page.value="6";
			var tmp = new Date();
			//tmp = "m_"+tmp.getTime();
			//FormLoadPopup(tmp);
			//f.setAttribute("target", tmp);
			f.submit();
		} else {
			var msg = "";
			if (result.charAt(0)=="0") {
				var temp = document.getElementById('from');
				msg += "Orasul/aeroportul de plecare ("+temp.value+") nu este valid. Va rugam selectati altul!\n";
				temp.value="";
			}
			if (result.charAt(1)=="0") {
				var temp = document.getElementById('to');
				msg += "Orasul/aeroportul de destinatie ("+temp.value+") nu este valid. Va rugam selectati altul!\n";
				temp.value="";
			}
			var l1 = document.getElementById('linie1');
			var l1v = l1.value;
			if (!f.action.match(/index\.php\?tip_caut=o/))
			{
				var l2 = document.getElementById('linie2');
				var l2v = l2.value;
				var l3 = document.getElementById('linie3');
				var l3v = l3.value;
			}
			//alert ('aiaci');
			if (result.charAt(2)=="0") {
				msg += "Az 1 légi társaság opció nem érvényes: nem létezik semmilyen légi társaság a "+l1.value+" kóddal!\n";
				l1.value = "";
			}
			if (!f.action.match(/index\.php\?tip_caut=o/))
			{
				if (result.charAt(3)=="0" || (l2v==l1v && result.charAt(2)=="0")) {
					msg += "A 2 légi társaság opció nem érvényes: nem létezik semmilyen légi társaság a "+l2.value+" kóddal!\n";
					l2.value = "";
				}
				if (result.charAt(4)=="0" || (l3v==l2v && result.charAt(3)=="0") || (l3v==l1v && result.charAt(2)=="0")) {
					var l3 = document.getElementById('linie3');
					msg += "A 3 légi társaság opció nem érvényes: nem létezik semmilyen légi társaság a "+l3.value+" kóddal!\n";
					l3.value = "";
				}
			}
			if (msg!="") {
				fsubmit.src = "static/css/images/bt_cautarenoua_hu.gif";
				alert (msg);
			} else {
				//f.page.value="[page]";
				f.page.value="4";
				//f.target="_self";
				//f.target="_self";
				f.submit();
			}
		}
	}
}

function verAero() {
	var f = document.forms['cautare'];
	var from = document.getElementById('from').value;
	var to = document.getElementById('to').value;
	var l1 = document.getElementById('linie1').value;

	if (!f.action.match(/index\.php\?tip_caut=o/))
	{
		var l2 = document.getElementById('linie2').value;
		var l3 = document.getElementById('linie3').value;
	}

	var x = f.From.value.split("(");
	if (x[1] != null) {
	  	x = x[1].split(")");
	  	var frmval = x[0];
	}
	else {
	  	var frmval = f.From.value;
	}


	var xx = f.To.value.split("(");
	if (xx[1] != null) {
	  	xx = xx[1].split(")");
	  	var cs = xx[0];
	}
	else {
	  	var cs = f.To.value;
	}


	var uri = url + 'From='+escape(frmval)+'&To='+escape(cs);

	if (l1.length) uri += '&l1='+escape(l1);
	if (!f.action.match(/index\.php\?tip_caut=o/))
	{
		if (l2.length) uri += '&l2='+escape(l2);
		if (l3.length) uri += '&l3='+escape(l3);
	}

	http.open("GET", uri, true);
	http.onreadystatechange = handleHttpResponse;

	http.send(null);
}

//pentru selectia de aeroport
function setCamp(camp, val) {
	var ob = document.getElementById(camp);
	ob.value=trimStr(val);
}


/* -------------------------------------- MULTILEG  ------------------------------- */


function showHideAddMultilegButton() {
	if (multileg_sections_ids.length >= multileg_max_sections_no) {
		document.getElementById('multileg_add_flight').style.display = 'none';
	}
	else {
		document.getElementById('multileg_add_flight').style.display = 'block';
	}
}

function correctMultilegFligtsSectionsNo() {
	var sections_no = $('#flights_sections').find('div.multileg_flight_no');
	$.each(sections_no, function(key, value) { 
	  $(value).html('Repülést ' + (key+1)); 
	});
}

function getNewMultilegSectionFlightNo() {
	var sections_no = $('#flights_sections').find('div.multileg_flight_no');
	return (sections_no.size() + 1);
}

function removeMultiLegSection(remove_id) {
	var answer = confirm("Biztosan el akarja távolítani ezt sction?");
	if (answer) {
		var new_multileg_sections_ids = new Array();
		$.each(multileg_sections_ids, function(index, sections_id) { 
  		if (sections_id != remove_id) {
  			new_multileg_sections_ids.push(sections_id);
  		}
		});
		multileg_sections_ids = new_multileg_sections_ids;
		$("#multileg"+ remove_id +"").remove();
		showHideAddMultilegButton();
		correctMultilegFligtsSectionsNo();
	}
	else {
		return false;
	}
}

var httpmultileg = getHTTPObject();

function showMultilegFlightSection() {
	if (http.readyState == 4) {
		var new_section = http.responseText;
 		$("#flights_sections").append( new_section );
	    multileg_sections_ids.push(last_multileg_section_id);
	    showHideAddMultilegButton();
	}
}

function addMultilegFlightSection() {
	last_multileg_section_id += 1;
	var last_date_id = multileg_sections_ids[multileg_sections_ids.length-1];
	var last_depdate = document.forms['cautare'].elements['EF_DepartureDate'+last_date_id].value;
	if (getDateFromFormat(last_depdate) == 0 || last_depdate=='' ) {
		last_depdate = gdta_min;
	}
	var last_return = document.forms['cautare'].elements['EF_To'+last_date_id].value;
	var uri_multileg = 'ajax?cmd=add_multileg_section&lang=hu&id=' + last_multileg_section_id  + '&flightno=' + getNewMultilegSectionFlightNo() + '&departure_date='+ last_depdate + '&return=' + last_return;
	http.open("GET", uri_multileg, true);
	http.onreadystatechange = showMultilegFlightSection;
	http.send(null);
}

function handleMultilegAirlinesValidationResponse() {
	if (http.readyState == 4) {
		//0 => toate sunt coduri ok
		//1 => exista oras/aeroport invalid
		//2 => exista mai multe rezultate pentru informatiile introduse => pagina intermediara
		//3 => mai mult de o legatura cu aceeasi "sursa-destinatie"
		//4 => mai mult de 4 orase diferite
		var result = trimStr(http.responseText);
		var f = document.forms['cautare'];
		var fsubmit = document.getElementById('fsubmit');
		if (result=="0") {
			f.page.value="6";
			var tmp = new Date();
			f.submit();
		}
		else if (result=="1") {
			alert( "Egy vagy több városra/repülőterekre vannak érvénytelen. Kérjük, javítsa ki!");
			return false;
		}
		else if (result=="3") {
			alert( "Indulás - érkezés járat egyedinek kell lennie.");
			return false;
		}
		else if (result=="4") {
			alert( "Felveheti akár 4 különböző városokban.");
			return false;
		}
		else {
			f.page.value="4";
			f.submit();
		}
	}
}

function verMultiLegAero(airlines_list_from, airlines_list_to){
	var uri = sec_url + 'flight_type=multileg&From='+escape(airlines_list_from)+'&To='+escape(airlines_list_to);
	http.open("GET", uri, true);
	http.onreadystatechange = handleMultilegAirlinesValidationResponse;
	http.send(null);
}

function getDateDiffInDays(date_min, date_max) {
	//date_min : "2006/10/10"; date_max : "2006/10/15";  -> return 5
	var one_day = 1000*60*60*24; 
	var x = date_min.split("/");     
	var y = date_max.split("/");
	var date1 = new Date(x[0],(x[1]-1),x[2]);
	var date2 = new Date(y[0],(y[1]-1),y[2])
	var month1 = x[1]-1;
	var month2 = y[1]-1;
	return Math.ceil((date2.getTime()-date1.getTime())/(one_day)); 
}


function applyEpowerValidation(arr_dep_date, arr_dep_time, arr_sections_no) {
	var duplicated_no = 0;
	var used_date = '';
	var one_day = 1000*60*60*24;
	
	var time_err = new Array();
	
	for (i = 0; i < arr_dep_date.length; i++) {
		if (arr_dep_date[i] != used_date) {
			used_date = arr_dep_date[i];
			duplicated_no = 1;
		}
		else {
			duplicated_no++;
		}
		if (duplicated_no > 3) {
			return "Felvehet legfeljebb 3 járat ugyanazon a napon.";
		}
		
		
		if ((i+1) < arr_dep_date.length) {
			//calculate dii in days between current date and next section date
			days_diff = getDateDiffInDays(arr_dep_date[i], arr_dep_date[i+1]);
			//if days no <=1  => time mut be selected
			if (days_diff < 2) {
				if (arr_dep_time[i] == '00:01' && time_err.indexOf("Repülést " + arr_sections_no[i]) == -1) {
					time_err.push("Repülést " + arr_sections_no[i]);
					
				}
				if (arr_dep_time[i+1] == '00:01' && time_err.indexOf("Repülést " + arr_sections_no[i+1]) == -1) {
					time_err.push("Repülést " + arr_sections_no[i+1]);
				}
			}
		}
		
	}
	
	if (time_err.length == 0) {
		return '';
	}
	
	return 'Válassza ki az indulás temne miatt ' + time_err.join(', ');
	
}





function validateMultiLeg(){
	var mesaj = '';
	var f = document.forms['cautare'];
	//Zborurile nu au fost introduse in ordine cronologica. Va rugam sa verificati
	var airlines_from = new Array();
	var airlines_to = new Array();
	//datele
	var temp = gdta_min;
	temp = temp.split("/");
	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	var mindta = new Date(temp[0], temp[1], temp[2]);
		
	temp = gdta_max;
	temp = temp.split("/");
	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	var maxdta = new Date(temp[0], temp[1], temp[2]);
	
	var new_min_date = mindta;
	
	var err_departure_city_aero = new Array();
	var err_arrival_city_aero = new Array();
	var err_departure_date = new Array();
	var arr_dep_date = new Array();
	var arr_dep_time = new Array();
	var arr_sections_no = new Array();
	
	var sections_no = multileg_sections_ids.length;
	var ind = 0;
	
	for (i in multileg_sections_ids) {
		//from
		var id = multileg_sections_ids[i];
		var fromval = trimStr(document.getElementById('ef_from' + id).value);
		var x = fromval.split("(");
		if (x[1] == null) {
			x[0] = fromval;
		}
		else {
			x = x[1].split(")");
		}
		fromval = x[0];
		//to
		var toval = trimStr(document.getElementById('ef_to' + multileg_sections_ids[i]).value);
		var y = toval.split("(");
		if (y[1] == null) {
				y[0] = toval;
		}
		else {
			y = y[1].split(")");
		}
		toval = y[0];
		if (!(fromval.length>=3 && isAlphanumeric(fromval, 1))) {
			err_departure_city_aero.push('Repülést ' + multileg_sections_ids[i]);
			//mesaj += 'Kérjük válassza ki az indulási várost vagy repülőteret (legalább 3 karakter) miatt járatszámmal ' + multileg_sections_ids[i] + '.\n';
		}
		if (!(toval.length>=3 && isAlphanumeric(toval, 1))) {
			err_arrival_city_aero.push('Repülést ' + multileg_sections_ids[i])
			//mesaj += 'Kérjük válassza ki az érkezési várost vagy repülőteret (legalább 3 karakter) miatt pentru járatszámmal ' + multileg_sections_ids[i] + '.\n';
		}
		
		airlines_from.push(fromval);
		airlines_to.push(toval);
			
						
		//data de plecare
		var depdate = document.cautare.elements['EF_DepartureDate'+id].value;
		var temp = depdate.split("/");
		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
		temp[1] --;
		var depdta = new Date(temp[0], temp[1], temp[2]);
		
		if (getDateFromFormat(depdate) == 0 || depdate=='' || depdta<mindta || depdta > maxdta) {
			err_departure_date.push('Repülést ' + multileg_sections_ids[i]);
			//mesaj += "Érvénytelen indulási időpont miatt járatszámmal " + id + " ! Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		}
		else if (depdta < new_min_date) {
			mesaj += 'Járat nem váltak időrendben. Kérjük, javítsa ki!';
			alert(mesaj);
			return false;
		}
		else {
			new_min_date = depdta;
		}
		arr_dep_date[ind] = depdate;
		arr_dep_time[ind] = document.cautare.elements['EF_DepartureTime'+id].value;
		arr_sections_no[ind] = id;
		ind++;	
	}
		
	if (err_departure_city_aero.length > 0) {
		mesaj += 'Kérjük válassza ki az indulási várost vagy repülőteret (legalább 3 karakter) helyett ' + err_departure_city_aero.join(', ') + '.\n';
	}
	if (err_arrival_city_aero.length > 0) {
		mesaj += 'Kérjük válassza ki az érkezési várost vagy repülőteret (legalább 3 karakter) helyett ' + err_arrival_city_aero.join(', ') + '.\n';
	}
	if (err_departure_date.length > 0) {
		mesaj += "Érvénytelen indulási időpont helyett " + err_departure_date.join(', ') + ". Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
	}
	
	//apply Epower validations
	if (sections_no > 3) {
		msg_err = applyEpowerValidation(arr_dep_date, arr_dep_time, arr_sections_no);
		mesaj += msg_err;
	}
	
	
	if (mesaj == '') {
		airlines_list_from = airlines_from.join('|');
		airlines_list_to = airlines_to.join('|');
		verMultiLegAero(airlines_list_from, airlines_list_to);
		return false;
	} 
	else {
		mesaj = "Figyelem!\n"+mesaj;
		alert(mesaj);
		return false;
	}
}

/* -------------------------------------- MULTILEG  ------------------------------- */



//validare form
function verCautare() {
	var mesaj = "";
	var f = document.forms['cautare'];
	var fsubmit = document.getElementById('fsubmit');
	
	if (f.elements.oneway[2] != undefined) {
		if (f.elements.oneway[2].checked == true) {
			validateMultiLeg();
			return false; 
		}
	}
	
	
	fsubmit.src = "static/css/images/bt_wait_hu.gif";
	f.From.value = trimStr(f.From.value);
	f.To.value = trimStr(f.To.value);

	//sursa OK?

	//FROM
	if ( f.From.value != '') {
		var x = f.From.value.split("(");
		if (x[1] == null) {
			x[0] = f.From.value;
		}
		else {
			x = x[1].split(")");
		}
		var fromval = x[0];
	}
	else {
		var fromval = '';
	}

	//TO
	if (f.To.value == "Irja be a várost/repül&#337;teret") {
		var cs = '';
	}
	else {
		if ( f.To.value != '') {
			var x = f.To.value.split("(");
			if (x[1] == null) {
				x[0] = f.To.value;
			}
			else {
				x = x[1].split(")");
			}
			var cs = x[0];
		}
		else {
			var cs = '';
		}
	}

	if (!(fromval.length>=3 && isAlphanumeric(fromval, 1))) {
		mesaj += 'Kérjük válassza ki az indulási várost vagy repülőteret (legalább 3 karakter).\n';
	}
	//destinatia OK?
	if (!(cs.length>=3 && isAlphanumeric(cs, 1))) {
		mesaj += 'Kérjük válassza ki az érkezési várost vagy repülőteret (legalább 3 karakter).\n';
	}
	//sursa != destinatie ?
	if (fromval==cs && fromval.length) {
		mesaj += 'Az érkezési városnak különböznie kell az indulási várostól!\n';
	}

	//datele
	var temp = gdta_min;
	//alert(temp);
	temp = temp.split("/");
	//alert(temp);
	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	//alert(temp[0] + "-" + temp[1] + "-" + temp[2]);
	var mindta = new Date(temp[0], temp[1], temp[2]);
	temp = gdta_max;
	//alert(temp);
	temp = temp.split("/");

	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	var maxdta = new Date(temp[0], temp[1], temp[2]);

	//data de plecare
	var temp = f.elements.DepartureDate.value.split("/");
	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	var depdta = new Date(temp[0], temp[1], temp[2]);
	//alert(depdta + "2: "+ mindta + " 3: " + maxdta);

	//depdta = depdta.getTime()/1000;
	if (getDateFromFormat(f.elements.DepartureDate.value) == 0) {
		mesaj += "Érvénytelen indulási időpont. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
	}
	else if (f.elements.DepartureDate.value=='' || depdta<mindta || depdta>maxdta) {
		mesaj += "Érvénytelen indulási időpont. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
	}


	//data de sosire
	if (f.elements.oneway[0].checked==true) {
		//data de plecare
		temp = f.elements.ArrivalDate.value.split("/");
		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
		temp[1] --;
		var arrdta = new Date(temp[0], temp[1], temp[2]);
		//arrdta = arrdta.getTime()/1000;
		if (getDateFromFormat(f.elements.DepartureDate.value) == 0) {
			mesaj += "Érvénytelen érkezési időpont. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		}
		else if (f.elements.ArrivalDate.value=='' || arrdta<mindta || arrdta>maxdta) {
			mesaj += "Érvénytelen érkezési időpont. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		} 
		else {
			var nrz = (arrdta-depdta)/(24*60*60*1000);
			if (nrz<0) {
				mesaj += "Érvénytelen érkezési időpont. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint az indulási időpont.\n";

			}
		}
	}
	else {
		f.elements.ArrivalDate.value='';
	}

	//form ok?
	if (mesaj=="") {
		verAero();
		return false;
	} else {
		mesaj = "Figyelem!\n"+mesaj;
		alert(mesaj);
		fsubmit.src = "static/css/images/btn_cauta_hu.gif";
		return false;
	}
}

function skimbaDta(dta1, dta2) {
	var temp = dta1.value.split("/");
	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	odta1 = new Date(temp[0], temp[1], temp[2]);

	temp = dta2.value.split("/");
	if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
	temp[1] --;
	odta2 = new Date(temp[0], temp[1], temp[2]);

	if (odta2<odta1) {
		dta2.value = dta1.value;
	}
}

// pasagerii
function calcADT () {

	//adults
	var adt = document.getElementById("ADT");
	var nr_adt = adt.options.length;

	//children first
	var sel = document.getElementById("CHD");
	var old_inf = sel.value;
	while (sel.options.length>0) {
		sel.remove( 0 );
	}
	var nr_chd = nr_max - adt.value;
	for (var i=0;i<=nr_chd; i++ ) {
		if (i==old_inf) ind = true;
		else ind = false;
		var elem = new Option(i,i, false, ind);
		sel.options[i] = elem;
	}

	calcINF();
}

function calcCHD () {
	//adults
	var chd = document.getElementById("CHD");
	var nr_chd = chd.options.length;

	//children first
	var sel = document.getElementById("ADT");
	var old_inf = sel.value;
	while (sel.options.length>0) {
		sel.remove( 0 );
	}
	var nr_adt = nr_max - chd.value;
	for (var i=0;i<=nr_adt; i++ ) {
		if (i==old_inf) ind = true;
		else ind = false;
		var elem = new Option(i,i, false, ind);
		sel.options[i] = elem;
	}
	calcINF();
}

function calcINF() {
	//adults
	var ind = false;
	var adt = document.getElementById("ADT");
	var nr_adt = adt.options.length;

	var sel = document.getElementById("INF");
	var old_inf = sel.value;
	while (sel.options.length>0) {
		sel.remove( 0 );
	}
	var nr_inf = adt.value;
	for (var i=0;i<=nr_inf; i++ ) {
		if (i==old_inf) ind = true;
		else ind = false;
		var elem = new Option(i,i, false, ind);
		sel.options[i] = elem;
	}
}
var http = getHTTPObject();

function update_categs(categ) {
	var arr_categ= new Array('ADT','CHD','INF','YTH','SEN','STU','SEA');
	for (i=0; i<7; i++)
	{
		if ( (arr_categ[i] != categ) && !(((categ == 'ADT') || (categ == 'CHD') || (categ == 'INF')) && (i<3)))
		{
			document.getElementById(arr_categ[i]).selectedIndex=0;
		}

	}
	calcINF();
	calcCHD();

}