// JavaScript Document
/**
	Uniwits System, 2011
	http://www.uniwits.com
**/

function loadzcinfo(servername,country,zipcode)
{
	if (window.XMLHttpRequest)
	{// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
	}
	else
	{// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	var url=window.location.protocol+'//'+servername+'/?cmd=zipcode2addressparts&country='+country+'&zipcode='+zipcode;
	xmlhttp.open("GET",url,false);
	xmlhttp.send();
	xml=xmlhttp.responseXML;
	return xml;
}

function update_address_parts(servername,country_id,zipcode_id,state_id,city_id,district_id,address_id,defaults)
{
	var zcobj=$(zipcode_id);
	var countryobj=$(country_id);
	var zipcode=zcobj.value;
	zipcode=zipcode.replace(/[^0-9]/g,'');
	if (zipcode)
	{
	
		var mb_state=$(state_id);
		var mb_city=$(city_id);
		var mb_district=$(district_id);
		var mb_address=$(address_id);
		var next_input=mb_state;
		
		if (mb_state)
			mb_state.readOnly=true;
		if (mb_city)
			mb_city.readOnly=true;
		if (mb_district)
			mb_district.readOnly=true;
		if (mb_address)
			mb_address.readOnly=true;
		
		try {
		
			zcobj.value=zipcode;
			var xml=loadzcinfo(servername,countryobj?countryobj.value:defaults.country,zipcode);
	
			var prefecture=$xv(xml,'zc_prefecture');
			if (prefecture)
			{
				if (mb_state)
					mb_state.value=prefecture;
				next_input=mb_city;
			}
	
			var city=$xv(xml,'zc_city');
			if (city)
			{
				if (mb_city)
					mb_city.value=city;
				if (city_id!=district_id)
					next_input=mb_district;
				else
					next_input=mb_address;
			}
	
			var district=$xv(xml,'zc_district');
			if (district)
			{
				if (city_id!=district_id)
				{
					if (mb_district)
						mb_district.value=district;
				}
				else if (mb_city)
					mb_city.value+=district;
				next_input=mb_address;
			}
		}
		catch (e)
		{
		}
		finally	{}
		if (mb_state)
			mb_state.readOnly=false;
		if (mb_city)
			mb_city.readOnly=false;
		if (mb_district)
			mb_district.readOnly=false;
		if (mb_address)
			mb_address.readOnly=false;

		if (next_input)
			next_input.focus();
	}
}
