var intervalCodPostal = "";

(function($) {

	$.fn.codigoPostal = function(options) {
			
		var defaults = {  
			codigopostal_extra: "", 
			codigopostal_separador: "-",
			selector: ".selector",
			morada: ".morada",
			codigopostal: "",
			localidade: ".localidade",
			distrito: "",
			freguesia: "",
			concelho: "",
			scripts: { 
				ajax: "/plugins/codpostais/codpostais.ajax.php", 
				popup: "/plugins/codpostais/index.php" 
			},
			min_length: 8,  
			id_distrito: "",
    		id_concelho: "",
    		id_freguesia: "",
    		id_localidade: ""                        
		}; 

		var options = $.extend(defaults, options);
		
        return this.each( function() {
			
			var mainObj = $(this);
			var isBusy = false;
			
			
			var callPopup = function (obj) 
            {
				clearInterval(intervalCodPostal);
				var cp = (options.codigopostal_extra) ? obj.val() + options.codigopostal_separador + $(options.codigopostal_extra).val() : $(obj).val();
                if(cp.length < options.min_length) {
                }
                else {
				
                $(options.localidade).val('');	
                if (cp.length >= options.min_length) {
				
					intervalCodPostal = setTimeout(function () 
                    { 
						$.ajax({
							url: options.scripts.ajax,
							type: "GET",
							dataType: "json",
							data: { 	
								"cmd": "registoscp", 
								"codigopostal": cp
							},
							beforeSend:function(){},  			
							success: function (data)
                            {
                                $("#loading_codigopostal").remove();
                                if (data) {
									
									$(options.localidade).val(data.localidade);
									
									if(1==0)
                                    {                                                                                   										                                        
                                        var popup = $("<div></div>")
														.attr("id", "cpPopup")
														.load(options.scripts.popup + "?codigopostal=" + cp, {
															"morada": options.morada,
															"codigopostal": options.codigopostal,
															"localidade": options.localidade,
															"distrito": options.distrito,
															"freguesia": options.freguesia,
															"concelho": options.concelho, 
															"id_distrito": options.id_distrito,
                                                    		"id_concelho": options.id_concelho,
                                                    		"id_freguesia": options.id_freguesia,
                                                    		"id_localidade": options.id_localidade
														}, 
                                                        function () 
                                                        {
															var offset = $(mainObj).eq(0).offset() ? $(mainObj).eq(0).offset() : { top: "30%", left: "0" };
															
                                                            $(this).css({
            															"position": "fixed",
            															"top": 30,
            															"left": ($('html').outerWidth()/2)-($(this).outerWidth()/2)
            														    });	
                                                            $(this).append(
																$("<a>fechar</a>")
																	.attr({
                                                                            "href":"javascript:;",
                                                                            "title":"Fechar Janela",
                                                                            "id":"close_popup"
                                                                         })
																	.css({
            															"position": "absolute",
            															"top": "5px",
            															"right":"10px"
            														    })
                                                                    .click(function () 
                                                                    {
																		$("#cpPopup").stop();
                                                                        $("#cpPopup").remove();
																	})
															);
														});	
                                        $("#cpPopup").stop();
                                        $("#cpPopup").remove();		         
                                        $("body").append(popup);                                                                                
									}
								}
								
							}
						});
						
					}, 10);
				
				}
        }
            
            }
			
			/*$(mainObj).keyup( function () 
            {				         
                callPopup($(this));
			});*/
			
			$(mainObj).blur( function () 
            {				         
                callPopup($(this));
			});
			
			/*if (options.codigopostal_extra) {
				$(options.codigopostal_extra).keyup(function () { callPopup(mainObj); });
		    }*/
			if (options.selector) {
				$(options.selector).click(function () {callPopup(mainObj);});
			}
		});
	
	}    
})(jQuery); 

