	var xhr = null;
	var xhrAuth = null;

	function getXHR(){
		if( window.ActiveXObject ){
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e1) {
					return null;
				}
			}
		} else if ( window.XMLHttpRequest ) {
			return new XMLHttpRequest();
		} else {
			return null;
		}
	}

	var ajaxSavedFunction;

	function ajaxCall( _url )
	{
		var d = new Date();

		xhrAuth = getXHR();
		xhrAuth.open( "GET", _url + "&useless=" + d.toGMTString(), true );
		xhrAuth.send( null );
	}

	function ajaxGet( _url, _function )
	{
		var d = new Date();
		ajaxSavedFunction = _function;

		xhrAuth = getXHR();
		xhrAuth.onreadystatechange = ajaxSet;
		xhrAuth.open( "GET", _url + "&useless=" + d.toGMTString(), true );
		xhrAuth.send( null );
	}

	function ajaxSet()
	{
		if( xhrAuth.readyState == 4 )
		{
			if( xhrAuth.status == 200 )
			{
				if( xhrAuth.responseText )
				{
					 ajaxSavedFunction( xhrAuth.responseText );
				}
			}
		}

		return;
	}

	function ajaxRequest( _url )
	{
		var d = new Date();

		xhrAuth = getXHR();
		xhrAuth.onreadystatechange = ajaxResponse;
		xhrAuth.open( "GET", _url + "&useless=" + d.toGMTString(), true );
		xhrAuth.send( null );
	}

	function ajaxResponse()
	{
		if( xhrAuth.readyState == 4 )
		{
			if( xhrAuth.status == 200 )
			{
				if( xhrAuth.responseText )
				{
					alert( xhrAuth.responseText );
				}
			}
		}

		return;
	}

	/*
	// 주소 검색을 위한 함수
	// getAddress()
	// printAddressList()
	// setAddress()
	// toggleAddressFinder()
	*/

	function getAddress( _dong )
	{
        var d = new Date();
		var result = document.getElementById( "addressFinderResult" );

		if( _dong.length > 1 )
		{
			result.innerHTML = "<span style='color:#cccccc'>검색 중 입니다. 잠시만 기다려 주십시오.</span>";
			xhrAuth = getXHR();
			xhrAuth.onreadystatechange = printAddressList;
			xhrAuth.open( "GET", "/ajax/ajax_getaddress.php?dong=" + encodeURIComponent( _dong ) + "&useless=" + d.toGMTString(), true );
			xhrAuth.send( null );
		}
		else
		{
			result.innerHTML = "";
		}
	}

	function printAddressList()
	{
		var zip;
		var result = document.getElementById( "addressFinderResult" );

		if( xhrAuth.readyState == 4 )
		{
			if( xhrAuth.status == 200 )
			{
				result.innerHTML = "";

				if( xhrAuth.responseText )
				{
					result.innerHTML = "<div style='height:20px'>입력하실 우편번호와 주소를 선택해주세요</div>";
					zipList = xhrAuth.responseText.split("\n");

					for( idx in zipList )
					{
						zip = zipList[idx].split("^");
						if( zip[0].length > 0 )
						{
							result.innerHTML += "<a href=\"javascript:setAddress("
								+ "'" + zip[0] + "', "
								+ "'" + zip[1] + "')\">"
								+ "<span style='color:#ff9650'>[" + zip[0] + "]</span> "
								+ zip[2] + "<BR>";
						}
					}
				}
			}
		}

		return;
	}

	function setAddress( _zip, _area )
	{
		var zip = document.getElementById( "zip" );
		var area = document.getElementById( "area" );
		var address = document.getElementById( "address" );

		zip.value = _zip;
		area.value = _area;
		address.select();

		toggleAddressFinder();

		return;
	}

	function toggleAddressFinder()
	{
		var finder = document.getElementById( "addressFinder" )
		var dong = document.getElementById( "dong" );

		finder.style.display = finder.style.display ? "" : "none";
		dong.select();

		return;
	}

	/*
	// 주소 검색을 위한 함수
	// getAddressById()
	// printAddressListById()
	// setAddressById()
	// toggleAddressFinderById()
	*/

	function getAddressById( _id, _dong )
	{
        var d = new Date();
		var result = document.getElementById( _id + "AddressFinderResult" );

		if( _dong.length > 1 )
		{
			result.innerHTML = "<span style='color:#cccccc'>검색 중 입니다. 잠시만 기다려 주십시오.</span>";
			xhrAuth = getXHR();
			xhrAuth.onreadystatechange = printAddressListById;
			xhrAuth.open( "GET", "/ajax/ajax_getaddressbyid.php?id=" + _id + "&dong=" + encodeURIComponent( _dong ) + "&useless=" + d.toGMTString(), true );
			xhrAuth.send( null );
		}
		else
		{
			result.innerHTML = "";
		}
	}

	function getAddressById2( _id, _dong )	 // 쇼핑몰 추가배송료 관련
	{
        var d = new Date();
		var result = document.getElementById( _id + "AddressFinderResult" );

		if( _dong.length > 1 )
		{
			result.innerHTML = "<span style='color:#cccccc'>검색 중 입니다. 잠시만 기다려 주십시오.</span>";
			xhrAuth = getXHR();
			xhrAuth.onreadystatechange = printAddressListById2;
			xhrAuth.open( "GET", "/ajax/ajax_getaddressbyid.php?id=" + _id + "&dong=" + encodeURIComponent( _dong ) + "&useless=" + d.toGMTString(), true );
			xhrAuth.send( null );
		}
		else
		{
			result.innerHTML = "";
		}
	}

	function printAddressListById()
	{
		var zip;
		var result;

		if( xhrAuth.readyState == 4 )
		{
			if( xhrAuth.status == 200 )
			{
				if( xhrAuth.responseText )
				{
					zipList = xhrAuth.responseText.split("\n");
					id = zipList.shift();

					result = document.getElementById( id + "AddressFinderResult" );
					result.innerHTML = "";
					result.innerHTML = "<div style='height:20px'>입력하실 우편번호와 주소를 선택해주세요</div>";

					for( idx in zipList )
					{
						zip = zipList[idx].split("^");
						if( zip[0].length > 0 )
						{
							result.innerHTML += "<a href=\"javascript:setAddressById("
								+ "'" + id + "', "
								+ "'" + zip[0] + "', "
								+ "'" + zip[1] + "')\">"
								+ "<span style='color:#ff9650'>[" + zip[0] + "]</span> "
								+ zip[2] + "<BR>";
						}
					}
				}
			}
		}

		return;
	}

	function printAddressListById2()	 // 쇼핑몰 추가배송료 관련
	{
		var zip;
		var result;

		if( xhrAuth.readyState == 4 )
		{
			if( xhrAuth.status == 200 )
			{
				if( xhrAuth.responseText )
				{
					zipList = xhrAuth.responseText.split("\n");
					id = zipList.shift();

					result = document.getElementById( id + "AddressFinderResult" );
					result.innerHTML = "";
					result.innerHTML = "<div style='height:20px'>입력하실 우편번호와 주소를 선택해주세요</div>";

					for( idx in zipList )
					{
						zip = zipList[idx].split("^");
						if( zip[0].length > 0 )
						{
							result.innerHTML += "<a href=\"javascript:setAddressById2("
								+ "'" + id + "', "
								+ "'" + zip[0] + "', "
								+ "'" + zip[1] + "')\">"
								+ "<span style='color:#ff9650'>[" + zip[0] + "]</span> "
								+ zip[2] + "<BR>";
						}
					}
				}
			}
		}

		return;
	}

	function setAddressById( _id, _zip, _area )
	{
		var zip = document.getElementById( _id + "Zip" );
		var area = document.getElementById( _id + "Area" );
		var address = document.getElementById( _id + "Address" );

		zip.value = _zip;
		area.value = _area;
		address.select();

		toggleAddressFinderById( _id );

		return;
	}

	function setAddressById2( _id, _zip, _area )	 // 쇼핑몰 추가배송료 관련
	{
		var zip = document.getElementById( _id + "Zip" );
		var area = document.getElementById( _id + "Area" );
		var address = document.getElementById( _id + "Address" );

		zip.value = _zip;
		area.value = _area;
		address.select();

		toggleAddressFinderById( _id );

		// 2011.10.25
        if(document.order_form.Sarea.value.substring(0, 2)=="제주")  add_fee_jeju(); 
        else  add_fee(); 

		return;
	}

	function toggleAddressFinderById( _id )
	{
		var finder = document.getElementById( _id + "AddressFinder" )
		var dong = document.getElementById( _id + "Dong" );

		if( finder )
		{
			finder.style.display = finder.style.display ? "" : "none";
			dong.select();
		}

		return;
	}

