function SG_loadSelect(sAction) {

	switch(sAction) {
	
		
               case 'init':
               // modified by marinela - nov 2006 to fix the drop downs
			var nSelectedRegion = -1;
			var nSelectedSubregion = -1;
			var nSelectedLocation = -1;
			var sSelectedRegionValue = '';
			var sSelectedSubregionValue = '';
			var sSelectedLocationValue = '';
		    var selregion = document.getElementById('restore_region_code').value;

			if ( document.forms[sFormName].elements[sCtlPrefix+'region_code'] != null ) {
				nSelectedRegion = document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex;
				if ( nSelectedRegion > 0 )    { sSelectedRegionValue = document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[nSelectedRegion].value; }


				SG_loadSelectRegion();
				if ( nSelectedRegion > 0 || selregion != '') {
					if ( nSelectedRegion > 0 ) {
					    sSelectedRegionValue = document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[nSelectedRegion].value
					}
					if (selregion != '') {
	                    sSelectedRegionValue = selregion;
	                }
					nIndex = 0;
					for (var i = 0; i < document.forms[sFormName].elements[sCtlPrefix+'region_code'].options.length; i++) {
						if (document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[i].value == sSelectedRegionValue) {
							nIndex = i;
						}
					}
					document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[nIndex].selected = true;
				} else {
					SG_DropDownSelectWhenOnlyOneEntry(document.forms[sFormName].elements[sCtlPrefix+'region_code'])
				}
                var selsubregion = document.getElementById('restore_subregion_code').value;
               // alert(selsubregion);
				if ( document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] != null ) {
					nSelectedSubregion = document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].selectedIndex;
					if ( nSelectedSubregion > 0 ) { sSelectedSubregionValue = document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[nSelectedSubregion].value; }

					SG_loadSelectSubregion();
					if ( nSelectedSubregion > 0 || selsubregion != '') {
						if (selsubregion != '') {
	                        sSelectedSubregionValue = selsubregion;
	                    }
						nIndex = 0;
						for (var i = 0; i < document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options.length; i++) {
							if (document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[i].value == sSelectedSubregionValue) {
								nIndex = i;
							}
						}
						document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[nIndex].selected = true;
					} else {
						SG_DropDownSelectWhenOnlyOneEntry(document.forms[sFormName].elements[sCtlPrefix+'subregion_code'])
					}

                    var sellocation = document.getElementById('restore_location_code').value;

					if ( document.forms[sFormName].elements[sCtlPrefix+'location_code'] != null ) {
						nSelectedLocation = document.forms[sFormName].elements[sCtlPrefix+'location_code'].selectedIndex;
						if ( nSelectedLocation > 0 )  { sSelectedLocationValue = document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[nSelectedLocation].value; }

						SG_loadSelectLocation();
						if ( nSelectedLocation > 0 || sellocation != '') {
							//alert(sellocation);
							nIndex = 0;
                            if (sellocation != '') {
	                            sSelectedLocationValue = sellocation;
	                        }
							for (var i = 0; i < document.forms[sFormName].elements[sCtlPrefix+'location_code'].options.length; i++) {
								//alert(document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[i].value);
								if (document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[i].value == sSelectedLocationValue) {
									nIndex = i;
								}
							}
							document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[nIndex].selected = true;
						} else {
							SG_DropDownSelectWhenOnlyOneEntry(document.forms[sFormName].elements[sCtlPrefix+'location_code'])
						}
					}
				}
			}

			SG_DropDownSelectWhenOnlyOneEntry(document.forms[sFormName].elements[sCtlPrefix+'country_code'])
			SG_DropDownSelectWhenOnlyOneEntry(document.forms[sFormName].elements[sCtlPrefix+'cboAgency'])
			SG_DropDownSelectWhenOnlyOneEntry(document.forms[sFormName].elements[sCtlPrefix+'cboProvider'])

		break;

		case 'region':
			SG_loadSelectRegion();
		break;

		case 'subregion':
			SG_loadSelectSubregion();
		break;

		case 'location':
			SG_loadSelectLocation();
		break;
	}
	
}

function SG_DropDownSelectWhenOnlyOneEntry(control) {
	if (control == null )
		return;
	if ( control.options.length == 2 ) {
		control.options[1].selected = true;
	}
}


function SG_loadSelectRegion() {

	if (document.forms[sFormName].elements[sCtlPrefix+'region_code'] == null) { return }

	//SG_resetSelectLocation();
	//SG_resetSelectSubregion();
	SG_resetSelectRegion();	

	for (var i = 0; i < aRegionCode.length; i++) {
		oOption = new Option(aRegionDisplayname[(i)]);
		document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[(i+1)] = oOption;
		document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[(i+1)].value = aRegionCode[(i)];
	}
	
	if (document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] != null)
	{
		document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0].value = '';
		document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0].selected = true;
	}	
}


function SG_loadSelectSubregion() {

	if (document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] == null) { return }

	var oOption;

	SG_resetSelectSubregion();

	if(
		document.forms[sFormName].elements[sCtlPrefix+'region_code'] == null || (
		document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex >= 0 &&
		document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex].value != '')) {

		//SG_resetSelectLocation();
		//SG_resetSelectSubregion();

		oOption = new Option(document.forms[sFormName].elements[sCtlPrefix+'option_default_text'].value);
		document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0] = oOption;

		var sRegionCode = '';
		
		if (document.forms[sFormName].elements[sCtlPrefix+'region_code'] != null) {
			sRegionCode = document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex].value;
		} else {
			sRegionCode = document.forms[sFormName].elements[sCtlPrefix+'region_code'].value;
		}
		
		var nRegionIndex = 0;

		for (var i = 0; i < aRegionCode.length; i++) {
			if (sRegionCode == aRegionCode[i]) {
				nRegionIndex = i;
			}
		}

		for (var i = 0; i < aSubregionCode[nRegionIndex].length; i++) {
			oOption = new Option(aSubregionDisplayname[nRegionIndex][(i)]);
			document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[(i+1)] = oOption;
			document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[(i+1)].value = aSubregionCode[nRegionIndex][(i)];
		}

		document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0].value = '';
		document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0].selected = true;
		
		if (document.forms[sFormName].elements[sCtlPrefix+'location_code'] != null)
		{
			document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[0].value = '';
			document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[0].selected = true;
		}

	} else {
		SG_resetSelectLocation();
		//SG_resetSelectSubregion();
	}
}


function SG_loadSelectLocation() {

	if (document.forms[sFormName].elements[sCtlPrefix+'location_code'] == null) { return }

	var oOption;

	SG_resetSelectLocation();

	if(
		(
			document.forms[sFormName].elements[sCtlPrefix+'region_code'] == null || (
			document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex >= 0 &&
			document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex].value != '')
		) && (
			document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] == null || (
			document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].selectedIndex >= 0 &&
			document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].selectedIndex].value != ''))
		)
		{

		//SG_resetSelectLocation();

		var sRegionCode = '';
		var nRegionIndex = 0;
		
		if (document.forms[sFormName].elements[sCtlPrefix+'region_code'] != null) {
			sRegionCode = document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex].value;
		} else {
			sRegionCode = document.forms[sFormName].elements[sCtlPrefix+'region_code'].value;
		}

		for (var i = 0; i < aRegionCode.length; i++) {
			if (sRegionCode == aRegionCode[i]) {
				nRegionIndex = i;
			}
		}

		var sSubregionCode = '';
		var nSubregionIndex = 0;

		if (document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] != null) {
			sSubregionCode = document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].selectedIndex].value;
		} else {
			sSubregionCode = document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].value;
		}

		for (var i = 0; i < aSubregionCode[nRegionIndex].length; i++) {
			if (sSubregionCode == aSubregionCode[nRegionIndex][i]) {
				nSubregionIndex = i;
			}
		}

		for (var i = 0; i < aLocationCode[nRegionIndex][nSubregionIndex].length; i++) {
			oOption = new Option(aLocationDisplayname[nRegionIndex][nSubregionIndex][(i)]);
			document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[(i+1)] = oOption;
			document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[(i+1)].value = aLocationCode[nRegionIndex][nSubregionIndex][(i)];
		}

	} else {
		SG_resetSelectLocation();
	}
}


function SG_resetSelectRegion() {

	if (document.forms[sFormName].elements[sCtlPrefix+'region_code'] == null) { return }

	var nOptions = document.forms[sFormName].elements[sCtlPrefix+'region_code'].options.length;

	for (var i = 0; i <= nOptions; i++) {
		document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[0] = null;
	}

	var oOption;
	oOption = new Option(document.forms[sFormName].elements[sCtlPrefix+'option_default_text'].value);
	document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[0] = oOption;
	document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[0].value = '';
	document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[0].selected = true;
}


function SG_resetSelectSubregion() {

	if (document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] == null) { return }

	var nOptions = document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options.length;

	for (var i = 0; i <= nOptions; i++) {
		document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0] = null;
	}

	var oOption;
	oOption = new Option(document.forms[sFormName].elements[sCtlPrefix+'option_default_text'].value);
	document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0] = oOption;
	document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0].value = '';
	document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[0].selected = true;
}


function SG_resetSelectLocation() {

	if (document.forms[sFormName].elements[sCtlPrefix+'location_code'] == null) { return }

	var nOptions = document.forms[sFormName].elements[sCtlPrefix+'location_code'].options.length;

	for (var i = 0; i <= nOptions; i++) {
		document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[0] = null;
	}
	
	var oOption;
	oOption = new Option(document.forms[sFormName].elements[sCtlPrefix+'option_default_text'].value);
	document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[0] = oOption;
	document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[0].value = '';
	document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[0].selected = true;
}

function SG_saveSelect() {
//modified by marinela - October 2006, 16
	if (document.forms[sFormName].elements[sCtlPrefix+'region_code'] && document.forms[sFormName].elements[sCtlPrefix+'region_code'].options) {
		formBooking.restore_region_code.value = document.forms[sFormName].elements[sCtlPrefix+'region_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex].value;
	} else {
		formBooking.restore_region_code.value = formBooking.region_code.value;
	}

	if (document.forms[sFormName].elements[sCtlPrefix+'subregion_code'] && document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options) {
		if (formBooking.restore_subregion_code && document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex && document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex])
		    formBooking.restore_subregion_code.value = document.forms[sFormName].elements[sCtlPrefix+'subregion_code'].options[document.forms[sFormName].elements[sCtlPrefix+'region_code'].selectedIndex].value;
	} else {
		if (formBooking.restore_subregion_code && formBooking.subregion_code)
		    formBooking.restore_subregion_code.value = formBooking.subregion_code.value;
	}

	if (document.forms[sFormName].elements[sCtlPrefix+'location_code'] && document.forms[sFormName].elements[sCtlPrefix+'location_code'].options) {
		if (formBooking.restore_location_code && document.forms[sFormName].elements[sCtlPrefix+'location_code'].selectedIndex && document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[document.forms[sFormName].elements[sCtlPrefix+'location_code'].selectedIndex])
		
		formBooking.restore_location_code.value = document.forms[sFormName].elements[sCtlPrefix+'location_code'].options[document.forms[sFormName].elements[sCtlPrefix+'location_code'].selectedIndex].value;
	} else {
		if (formBooking.location_code && formBooking.restore_location_code) {
		    formBooking.restore_location_code.value = formBooking.location_code.value;
		}
	}

}

