	var regions=[];
	function clearSelect(ctrl){
		for(var c=ctrl.length-1;c>0;c--){
			ctrl.remove(c);
		}
	}
	function populateRegions(form,xml){
		form.region_id.options[0].text="Please wait: parsing.";
		var x2o=new XML.xml2obj();
		var xmlObj=x2o.parseXML(xml.responseText);
		var regions;
		var region;
		var prev_regiongroup="";
		var regiongroup="";
  
		if(xmlObj){
			if(xmlObj.data.result==1){
				regions=xmlObj.data.regions.item;
				if(regions.length>0){
					for(i=form.region_id.childNodes.length-1; i>=1; i--){
						form.region_id.removeChild(form.region_id.childNodes[i]);
					}

					//Add new Items
					for(var c=0;c<regions.length;c++){
						regiongroup=urldecode(regions[c].regiongroup);
						if(prev_regiongroup!=regiongroup&&regions[c].regiongroup_id>0){
							prev_regiongroup=regiongroup;
							var oGroup = document.createElement('optgroup');
							oGroup.label=regiongroup;
							form.region_id.appendChild(oGroup);
							//alert("Yeah OK");
						}
						region=urldecode(regions[c].region);
						form.region_id.options[form.region_id.options.length]=new Option(region,regions[c].id);
					}
					form.region_id.options[0].text="Select a Region";
					form.region_id.disabled=false;
				}else{
					form.region_id.options[0].text="No regions found.";
				}
			}else{
				form.region_id.options[0].text="No regions found.";
			}
		}else{
			form.region_id.options[0].text="Error parsing data.";
		}
	}
	function getRegions(state,url){
		var form=state.form;
		clearSelect(form.region_id);
		form.region_id.disabled=true;
		if(state.selectedIndex==0){
			form.region_id.options[0].text="Select a Region";
		}else{
			form.region_id.options[0].text="Please wait: loading.";
			new Ajax.Request(
				url,
				{
					method:'post',
					onSuccess:function(transport){
						populateRegions(form,transport);
					},
					onFailure:function(transport){
						populateRegions(form,transport);
					}
				}
			);
		}
	}
