    function autoCorrect_success(res, tbExtender)
    {
        if (res!="") $find(tbExtender).set_Text(res);
    }
    function autoCorrect(tbPostcode, tbExtender)
    {
        JA.JustDeliverIT.Web.CommonControls.AddressSearchService.AutoCorrectPostcode(tbPostcode.value, autoCorrect_success, null, tbExtender);
    }
    function ClearAddress()
    {
        BindControls(new JA.JustDeliverIT.Common.Address());
    }

    function SearchAddressByPostcode()
    {
//       var postcode = $get(tbPostcodeSearchID).value;
//       var request =  new JA.JustDeliverIT.Web.Code.AddressSearch.AddressSearchRequest();
//       request.Postcode = postcode;
//       JA.JustDeliverIT.Web.CommonControls.AddressSearchService.GetAddressesListByPostcode(request, SearchAddressByPostcode_Success, LoadAddress_Faild );
//        document.getElementById("pPostcodeAddressList").innerHTML="Loading...";
   }
    
    
    var currentResult=null;
    
    function SearchAddressByPostcode_Success(result)
    {
        document.getElementById("pPostcodeAddressList").innerHTML="";

        var addressList = result.AddressList;

    
         if (addressList==null || addressList.length==0) 
         {
            alert("No results.");
            return;
         }
         if (addressList.length==1) 
         {
            BindControls(result[0])
            return;
         }
         
         currentResult=addressList;
         showAddressSelectForm();
    }

    function AddressByPostcodeSelect(i)
    {
        if (i==-1) return;
        BindControls(currentResult[i])
    }
    
         function showAddressSelectForm()
         {
           var div = document.getElementById("pPostcodeAddressList");
           
           var html = "<select style='width:266px;' onchange='AddressByPostcodeSelect(this.value)'><option value=-1>Select Address</option>";
           var len = currentResult.length;
           for (i=0; i<len; i++)
           {
                html+="<option value='" + i + "'>" + currentResult[i].ScreenName + "</option>";
           }
           html+="</select>";
           div.innerHTML=html;
           div.style.display="block";
         }
    
    


    function SearchAddress()
    {
        LoadAddress($get(tbSearchTextID).value);
    }

    function GetDefaultAddress()
    {
        LoadAddress(null);
    }

    function LoadAddress(filter)
    {
        JA.JustDeliverIT.Web.CommonControls.AddressSearchService.GetAddress(addressType, filter, LoadAddress_Success, LoadAddress_Faild );
    }
    
    function LoadAddress_Success(result, eventArgs)
    {
        BindControls(result);
    }
    
    function LoadAddress_Faild(error)
    {
        document.getElementById("pPostcodeAddressList").innerHTML="";
        alert("Error: " + error.get_message());
    }
    
    function BindControls(address)
    {
		if( address.FirstName != null && address.FirstName != "" ) $find(FirstNameTextBoxWatermarkExtender_ClientID).set_Text(address.FirstName);
			else $find(FirstNameTextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.LastName != null && address.LastName != "" ) $find(LastNameTextBoxWatermarkExtender_ClientID).set_Text(address.LastName);
			else $find(LastNameTextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.CompanyName != null && address.CompanyName != "" ) $find(CompanyNameTextBoxWatermarkExtender_ClientID).set_Text(address.CompanyName);
			else $find(CompanyNameTextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.AddressLine1 != null && address.AddressLine1 != "" ) $find(AddressLine1TextBoxWatermarkExtender_ClientID).set_Text(address.AddressLine1);
			else $find(AddressLine1TextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.AddressLine2 != null && address.AddressLine2 != "" ) $find(AddressLine2TextBoxWatermarkExtender_ClientID).set_Text(address.AddressLine2);
			else $find(AddressLine2TextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.AddressLine3 != null &&  address.AddressLine3 != "" ) $find(AddressLine3TextBoxWatermarkExtender_ClientID).set_Text(address.AddressLine3);
			else $find(AddressLine3TextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.County != null && address.County != "" ) $find(CountryTextBoxWatermarkExtender_ClientID).set_Text(address.County);
			else $find(CountryTextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.PostCode != null && address.PostCode != "" ) $find(PostCodeTextBoxWatermarkExtender_ClientID).set_Text(address.PostCode);
			else $find(PostCodeTextBoxWatermarkExtender_ClientID).set_Text("");
		if( address.EmailAddress != null && address.EmailAddress != "" ) $find(EmailAddressTextBoxWatermarkExtender_ClientID).set_Text(address.EmailAddress);
			else $find(EmailAddressTextBoxWatermarkExtender_ClientID).set_Text("");

		if( address.TelephoneNumber != null && address.TelephoneNumber != "" ) $get(TelephoneNumberTextBoxID).value = address.TelephoneNumber;
			else $get(TelephoneNumberTextBoxID).value = "";
		if( address.Extension != null && address.Extension != "" ) $get(ExtensionTextBoxID).value = address.Extension;
			else $get(ExtensionTextBoxID).value = "";
    }
    
    function ChangePanelVisibility(eventElement)
    {
        if(eventElement.target.checked)
        {
            var text = "";
            var t1 = $get(PostCodeTextBoxID).value.replace(PostCodeTextBoxWatermarkText, "").trim();
            var t2 = $get(AddressLine1TextBoxID).value.replace(AddressLine1TextBoxWatermarkText, "").trim();
            if(t1 == null || t1.length == 0 || t2 == null || t2.length == 0)
                text = t1 + t2;
             else
               text = t1 + ", " + t2;
           
            $get(tbFavoriteNameID).value = text;
            $get(pnlFavoriteNameID).style.visibility = "visible";
        }
        else
            $get(pnlFavoriteNameID).style.visibility = "hidden";

    }
