function check4subs(select_elem,selected_id) {

	new Ajax.Request('../include/locations.inc.php', {
      method: 'post',
      parameters: { context: select_elem.value },
      onSuccess: function(transport) {
        var response = transport.responseText || "empty";
        if(eval(response)) {
			var my_options = $A(eval(response));
			if(my_options.length!=0) {
				var subSelect=document.createElement('select'); 
				subSelect.id=subSelect.name=(select_elem.name=='island'?'region':'area');
				var primer=document.createElement('option'); primer.value=''; primer.text='---';
				subSelect.options.add(primer);
				$A(my_options).each(function(s, index) {
	              var tmp = $A(s);
	              var opt = document.createElement('option');
	               opt.text = tmp[1];
	               opt.value = tmp[0];
				   if(opt.value==selected_id||(selected_id in oc(tmp[2]))) opt.selected = 1;
	               subSelect.options.add(opt);
	            });
			} 

			if(select_elem.name=='island') for(i=$('locations_cell').childNodes.length;i>1;i--) $('locations_cell').removeChild($('locations_cell').childNodes[i-1]);
			if(select_elem.name=='region') for(j=$('locations_cell').childNodes.length;j>2;j--) $('locations_cell').removeChild($('locations_cell').childNodes[j-1]);			

			$('locations_cell').appendChild(subSelect);
			check4subs($(subSelect.id),selected_id);
			Event.observe(subSelect.id,'change',function(){check4subs(this,selected_id);});
        }
      }
    });

}

function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}
