;(function($) {				/** _O:options, _U:updates, _f:currentform **/

var DBG=true;
var L=function(s){if(DBG && console!=null && console.log!=null)console.log(s);}
L=alert;
jQuery.fn.extend({AddressValidatorMiniAddress:function( _U )
{
	var fields=this;if(!this) return null; 
	var _O={ url:"",data:null,msg:"Verifying Address...",showStatusErrMsg:false,xClassValid:"ui-valid-formfield",xClassInvalid:"ui-invalid-formfield"};	
	for(var a in _U){_O[a]=_U[a];}		
		
	function bind_events(_f,_O)
	{
		if(!_f.attr('valid'))_f.attr('valid','init');
		
		_f.find('a[title=Select]').click(function(){
			try{
			
			_f.css('border','solid thin green');
			//blockFormWithMessage($('form'),'Submiting form...');
			///_f.attr('submit-action','Select');	
			//L(_f.find('input.DAVReasonCode').val());			
			if(_f.find('input.DAVReasonCode').val()=='100'){return true;}
			//if(_f.find('input.DAVReasonCode').val()=='103'){return true;}
		    ///var all=$(this).find('.addresslisting > .miniaddress');
		    var all=$(_f).find('.addresslisting > .miniaddress');
		    var address={
		            address1:$(all).find('.address:last .street > .line1').text(), unittype:$(all).find('.address:last .street > .line2 > .unittype').text(), address2:$(all).find('.address:last .street > .line2 > .unitnumber').text(),
		            city:$(all).find('.address:last .location > .city').text(), state:$(all).find('.address:last .location > .state').text(), postalCode:$(all).find('.address:last .location > .zip').text()
		    };
		    $.ajax({ 
		    		url:_O.url,data:address,type:"GET",dataType:"xml",cache:false,async:false,
		            success:function(data){
		                var accept=$(data).find('address > DPV > parsedStatus > status > accept').text();
		                _f.attr('valid',(accept=='true'?true:false));
		               //L('.ajax --> accept:'+accept+'|@valid:'+_f.attr('valid'));
		             },
		             error:function(XMLHttpRequest, textStatus, errorThrown){ 
		             	_f.attr('valid','service_error'); 
		             	//L('service_error');
		             }
		    });		    
		    if(_f.attr('valid')=='service_error')return true;
		    var valid=((_f.attr('valid')=='true')?true:false);	    
		    if(valid==false){	
		    	try{	  
		    	_f.find('input.addresslistingedit').click();  	
		    	_f.find('input.addresslistingedit').get(0).click();		    		  
		    	}catch(e){}  	
		    }else{
		    		_f.find('input.addresslistingselect').click();
		    		_f.find('input.addresslistingselect').get(0).click();		    			    	
		    }
		    //_f.find('input.DAVReasonCode').val((valid?'100':'101'));		
		    return valid;
		    //return true;		    
		    }catch(e){ 
		    	//console.log('e:', e);
		    	//L('e:'+e);
		    	 ///_f.find('input.DAVReasonCode').val('103');
		    	return true;
		    }
		});	
		
	}
	for(var i=0; i<fields.length;i++){
		bind_events($(fields[i]),_O);
	}
			
	}//:}function::AddressValidatorMiniAddress
});///:}jQuery.fn.Extend

function blockFormWithMessage(jform,msg){
	try{jform.block({ message: msg,timeout: 6000,
			css:{opacity:0.66,width:'400px',top:'50%',left:($(window).width()-400)/2+'px',border:'1px solid #a00' },overlayCSS:{opacity:0.36,backgroundColor:'#000'}				
		});}catch(e){}	
}

})(jQuery);
