// ------------------------------------------------------------------
// global variables
// ------------------------------------------------------------------
var gaAccomList = new Array();
var gaCty1List = new Array();
var gaCty2List = new Array();
var gaCty3List = new Array();
var gsCty1 = '', gsCty2 = '', gsCty3 = '', gsDep = '', gsAccom = '';

// ------------------------------------------------------------------
// Geography objects
// ------------------------------------------------------------------
function accomObj(asStkId, asStkNm, asCty1Id, asCty2Id, asCty3Id) {
	this.Id = asStkId;
	this.Name = asStkNm;
	this.Cty1Id = asCty1Id;
	this.Cty2Id = asCty2Id;
	this.Cty3Id = asCty3Id;
}

function cty1Obj(asId, asNm) {
	this.Id = asId;
	this.Name = asNm;
}

function cty2Obj(asId, asNm, asCty1Id) {
	this.Id = asId;
	this.Name = asNm;
	this.Cty1Id = asCty1Id;
}

function cty3Obj(asId, asNm, asCty1Id, asCty2Id) {
	this.Id = asId;
	this.Name = asNm;
	this.Cty1Id = asCty1Id;
	this.Cty2Id = asCty2Id;
}

// ------------------------------------------------------------------
// Geography functions
// ------------------------------------------------------------------
function Reset(asThis, bClear) {
	var current_ID = '';
	if ($f(asThis + '_ID')) {
		current_ID = $f(asThis + '_ID').value;
	}
	if (current_ID != "") {
		if (asThis == 'CTY1') {
			if (gsGeogCty2 == 'Y') { $f('CTY2_ID').value = ""; }
	 		$f('CTY3_ID').value = "";
	 		if ($f('ACC_ID')) $f('ACC_ID').value = "";
		}
		if (asThis == 'CTY2') {
 	 		$f('CTY3_ID').value = "";
 	 		if ($f('ACC_ID')) $f('ACC_ID').value = "";
		}
		if (asThis == 'CTY3') {
			if ($f('ACC_ID')) $f('ACC_ID').value = "";
		}
		if (current_ID != '') $f(asThis + '_ID').value = current_ID;
	}
}

function buildGeogDep(laTrsList) {
	var cPos = 1;
	$f('DEP_PT_ID').options.length = 0;
	$f('DEP_PT_ID').options[0] = new Option("Select...", "");
	for (var idx=0; idx < laTrsList.length; idx++) {
		$f('DEP_PT_ID').options[cPos] = new Option(laTrsList[idx][1], laTrsList[idx][0]);
		cPos++;
	}
}
	
function buildGeogCty1() {
	var cPos = 1;
	document.getElementById('CTY1_ID').options.length = 0;
	document.getElementById('CTY1_ID').options[0] = new Option("Select country", "");
	for (var idx=0; idx < gaCty1List.length; idx++) {
		$f('CTY1_ID').options[cPos] = new Option(gaCty1List[idx].Name, gaCty1List[idx].Id);
		cPos++;
	}
}

function buildGeogCty2() {
	var cPos = 1;
	$f('CTY2_ID').options.length = 0;
	$f('CTY2_ID').options[0] = new Option("Select...", "");
	for (var idx=0; idx < gaCty2List.length; idx++) {
		if (($f('CTY1_ID').value == '') || ($f('CTY1_ID').value == gaCty2List[idx].Cty1Id)) {
			$f('CTY2_ID').options[cPos] = new Option(gaCty2List[idx].Name, gaCty2List[idx].Id);
			cPos++;
		}
	}
}

function buildGeogCty3() {
	var cPos = 1, lbFound;
	$f('CTY3_ID').options.length = 0;
	$f('CTY3_ID').options[0] = new Option("All regions", "");
	for (var idx=0; idx < gaCty3List.length; idx++) {
		lbFound = false;
		if ((gsGeogCty2 == 'Y')  && ($f('CTY2_ID').value != '')) {
			if ($f('CTY2_ID').value == gaCty3List[idx].Cty2Id) lbFound = true;
		} else if ((gsGeogCty1 == 'Y') && ($f('CTY1_ID').value != '')) {
			if ($f('CTY1_ID').value == gaCty3List[idx].Cty1Id) lbFound = true;
		} else
			lbFound = true;
		if (lbFound) {
			$f('CTY3_ID').options[cPos] = new Option(gaCty3List[idx].Name, gaCty3List[idx].Id);
			cPos++;
		}
	}
}

function buildGeogAccom() {
	var cPos = 1, lbAddAccom;
	var lsCty1 = '';
	var lsCty2 = '';
	var lsCty3 = $f('CTY3_ID').value;

	if (gsGeogCty1 == 'Y') {lsCty1 = $f('CTY1_ID').value; }
	if (gsGeogCty2 == 'Y') {lsCty2 = $f('CTY2_ID').value; }

	$f('ACC_ID').options.length = 0;
	$f('ACC_ID').options[0] = new Option("All parcs", "");
	for (var idx=0; idx < gaAccomList.length; idx++) {
		lbAddAccom = false;
		if (lsCty3 != '') {
			if (lsCty3 == gaAccomList[idx].Cty3Id) lbAddAccom = true;
		} else if (lsCty2 != '') {
			if (lsCty2 == gaAccomList[idx].Cty2Id) lbAddAccom = true;
		} else if (lsCty1 != '') {
			if (lsCty1 == gaAccomList[idx].Cty1Id) lbAddAccom = true;
		} else
			lbAddAccom = true;
		if (lbAddAccom) {
			$f('ACC_ID').options[cPos] = new Option(gaAccomList[idx].Name, gaAccomList[idx].Id);
			cPos++;
		}
	}
}

function buildGeogLists(asLevel) {
	if (asLevel == 'INIT') {
		if (typeof(DATList) != "undefined") {
			buildGeogDep(DATList)
		}
		if (gsDep != '') {$f('DEP_PT_ID').value = gsDep;}
		if (gsGeogCty1 == 'Y') { 
			buildGeogCty1();
			if (gsCty1 != '') {$f('CTY1_ID').value = gsCty1;}
		}
	}
	if ((asLevel == 'CTY1') || ((asLevel == 'INIT') && (gsGeogCty2 == 'Y'))	) {		
		if (gsGeogCty2 == 'Y') {
			buildGeogCty2();
			if (gsCty2 != '') {$f('CTY2_ID').value = gsCty2;}
		}
	}
	buildGeogCty3();
	if (gsCty3 != '') {$f('CTY3_ID').value = gsCty3;}
	if ($f('ACC_ID')) {
		buildGeogAccom();
		if (gsAccom != '') {$f('ACC_ID').value = gsAccom;}
	}
	gsCty1 = '', gsCty2 = '', gsCty3 = '', gsDep = '', gsAccom = '';
}



function SearchAccomList( accomcode)
{
   for (var idx=0; idx < gaAccomList.length; idx++) { 
      if (accomcode == gaAccomList[idx].Id   ) return gaAccomList[idx]; 

   }
  return null;
}



function SearchRegionList( RegionCode)
{
   for (var idx=0; idx < gaCty3List.length; idx++) { 
      if (RegionCode == gaCty3List[idx].Id   ) return gaCty3List[idx]; 

   }
  return null;
}