/*
*	jQuery Monta Select v1.0 - http://ariel.pchara.com
*	
*	Parametros de entrada
*	url: arquivo que retorna o JSON
*	defaulValue: valor do select que será selecionado
* 	fieldValue: incide do JSON que será usado para o value do <option/>
*	filedName: indice do JSON que será usado para o conteudo do <option/>
*	whaitText: texto mostrado durante a montagem do select
*	whaitClass: classe atribuida ao select enquanto o select é montado
*	data: parametros para o request
*	attr: atributos inseridos no <option/>
*	success: função executada no termino da montagem do select
*/
jQuery.fn.montaSELECT = function(P){
	var SELECT_local = this;
	
	P = jQuery.extend({
		url: false,
		defaultValue: 'null',
		fieldValue: "id",
		fieldName: "nome",
		whaitTest: "Aguarde...",
		whaitClass: "aguarde",
		data: {},
		attr: {},
		success: function(){ return false; }
	}, P);
	
	jQuery.ajax({
		url: P.url,
		data: P.data,
		dataType: "json",
		beforeSend: function(){
			jQuery("option[value!='null']",SELECT_local).remove();
			SELECT_local.addClass(P.whaitClass);
			jQuery("<option/>").html(P.whaitTest).val("").appendTo(SELECT_local);
		},
		success: function(json){
			jQuery("option[value!='null']",SELECT_local).remove();
			if(json.dados){
				jQuery.each(json.dados, function(i, valor){
								jQuery("<option/>").html(valor[P.fieldName]).attr(P.attr).attr({value:valor[P.fieldValue]}).appendTo( SELECT_local );
							});
				// o timeout é para o IE6 ter tempo pra pensar o que fazer com os dados do select
				setTimeout(function(){ SELECT_local.val(P.defaultValue); }, 50);
			}
			SELECT_local.removeClass(P.whaitClass);
			P.success(json);
		}
	});
	return this;
};