//-------------------------------------------------------------------------------------------------
/* $Header: /export/home/davec/idx/js/RCS/areas.js,v 1.1 2003/03/05 20:31:27 davec Exp $ */
//-------------------------------------------------------------------------------------------------

// functions for handling the district/subdistrict associated drop downs
function fillMultiDistrictFromArray(selectCtrl,selectCtrl2, selectMajor_area) {
	var i,j,k,l;

	for (i = 1; i <= selectCtrl.length; i++) { selectCtrl.options[i] = null; }
	selectCtrl.length=1;
	for (i = 1; i <= selectCtrl2.length; i++) { selectCtrl2.options[i] = null; }
	selectCtrl2.length=1;
	j = 1;
	if (selectMajor_area != null) {
		// add new items
		for (i = 1; i < selectMajor_area.length; i++) {
			if (selectMajor_area.options[i].selected == true) {
				l=i;
				var itemArray = districts[i-1];
				for (k = 0; k < itemArray.length; k++) {
					selectCtrl.options[j] = new Option(String(itemArray[k][0]), String(itemArray[k][1]), false, false);
					j++;
				}
			}
		}
		if(j==2) { 
			selectCtrl.selectedIndex = 1; 
			fillMultiSdistrictFromArray(selectCtrl2, selectCtrl,selectMajor_area);
		} else {
			// select first item (prompt) for sub list
			if (j>2) { selectCtrl.selectedIndex = 0;}
			fillMultiSdistrictFromArray(selectCtrl2, selectCtrl,selectMajor_area);
		}
//		if ( j< 10 ) {selectCtrl.size=j};
//   		if ( j>= 10) {selectCtrl.size=10};
   }
}

function fillMultiSdistrictFromArray(selectCtrl,selectDistrict,selectMajor_area) {
	var i,k,l,m;

	var district_code;

	// empty existing items
	for (i = 1; i <= selectCtrl.length; i ++) {	selectCtrl.options[i] = null; }
	selectCtrl.length=1;
	j=1;
	if (selectDistrict != null) {
		// add new items
		for (i = 1; i < selectDistrict.length; i++) {
			if (selectDistrict.options[i].selected == true) {
			  	district_code=selectDistrict.options[i].value;
			  	for (k = 1; k < selectMajor_area.length; k++) {
			  		if (selectMajor_area.options[k].selected ==true) {
			  			var itemArray = districts[k-1];
			  			for (l = 0; l < itemArray.length; l++) {
			  				if (itemArray[l][1]==district_code) {
			  					var subdistricts = itemArray[l];
			  					for (m = 2; m < subdistricts.length; m++) {
			  						var dupFlag = false;
			  						for (var n=0; n < selectCtrl.length;n++ ) {
			  							if (selectCtrl.options[n].value == subdistricts[m][1]) { dupFlag = true; }
			  						}
			  						if (!dupFlag) {
										selectCtrl.options[j] = new Option(String(subdistricts[m][0]), String(subdistricts[m][1]), false, false);
										j++;
									}
								}
							}
						}
					}
				}
			}
		}
		// select first item (prompt) for sub list
		if(j==2) { selectCtrl.selectedIndex = 1; }
		if (j>2) { selectCtrl.selectedIndex = 0; }
//		if ( j< 10 ) {selectCtrl.size=j} else {selectCtrl.size=10} ;
	   }
}

// code for handling the back button from search pages.
function accumulateArea(sAreaName) {
    var Area = document.forms[0][sAreaName];
    var sResult = "";
    var X = 0;
    for (X = 1; X < Area.length; X++) {
        if (Area.options[X].selected) {
            sResult += "|" + Area.options[X].value + "|";
        }
    }
    return sResult;
}

function populateArea(sAreaName, sAreaList) {
    var Area = document.forms[0][sAreaName];
    for (X = 0; X < Area.length; X++) {
        if (sAreaList.indexOf("|" + Area.options[X].value + "|") >= 0 && Area.options[X].value != "") {
            Area.options[X].selected = true;
        } else {
            Area.options[X].selected = false;
        }
    }
}

function saveArea() {
    var agt=navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);

    var is_ie   = (agt.indexOf("msie") != -1);
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
    && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
    && (agt.indexOf('webtv')==-1));

    var is_nav6up = (is_nav && (is_major >= 5));
    if (is_ie||is_nav6up) {
        var form = document.forms[0];
        form.major_area_list.value = accumulateArea("major_area");
        form.district_list.value = accumulateArea("district");
        form.subdistrict_list.value = accumulateArea("sdistrict");
    }
}

function loadArea() {
    var agt=navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);

    var is_ie   = (agt.indexOf("msie") != -1);
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
    && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
    && (agt.indexOf('webtv')==-1));
    var is_nav6up = (is_nav && (is_major >= 5));
    if (is_ie||is_nav6up) {
        var form = document.forms[0];
        populateArea("major_area", form.major_area_list.value);
        fillMultiDistrictFromArray(form.district,form.sdistrict, form.major_area);
        populateArea("district", form.district_list.value);
        fillMultiSdistrictFromArray(form.sdistrict,form.district,form.major_area);
        populateArea("sdistrict", form.subdistrict_list.value);
    }

}


