// JavaScript Document
// JavaScript com acessorios para os sitema
// Funções communs para criação de elementos html mais completos

//A partir de retorno de JSON esta função monta os itens do select
/*
Parametros de entreda = Object;
@url = arquivo JSON "/json/return.lista.php" - String
@value = valos padrão do select - String
@fildValue = indice do JSON que será considerad o value o <option> - String
@fieldName = indice do JSON que será o Conteudo do <option> - String
@data = valores para o GET do PHP  - Object "{id:'X'}"
@attr = Attributos para o <option> - Object
*/
jQuery.fn.selectJSON = function(P){
	var select = $(this);
	
	P = jQuery.extend({
		url: select.attr('url'),
		value: 'null',
		data: {},
		attr: {},
		success: function(){ return false; }
	}, P);
	
	if(P.url){
		jQuery.ajax({
			url: P.url,
			data: P.data,
			dataType: "json",
                        type: 'post',
			beforeSend: function(){
				jQuery("option[value!='null']",select).remove();
				select.css({background:"#CCC",color:"#666",fontStyle:"italic"});
				jQuery("<option/>").html("aguarde...").val("").appendTo(select);
			},
			success: function(json){
				jQuery("option[value!='null']",select).remove();
				if(json){
					jQuery.each(json, function(i, valor){
                        jQuery("<option/>").html(valor).attr(P.attr).attr({value:i}).appendTo( select );
                    });
					select.val(P.value);
				}
				select.css({background:"",color:"",fontStyle:""});
				P.success(select, json);
			}
		});
	}else if(P.list){
		jQuery("option[value!='null']",select).remove();
		if(typeof(P.list) == 'number'){
			for(var i=1; i<=P.list; i++)
				jQuery("<option/>").html(i).attr(P.attr).attr({value:i}).appendTo( select );
		}else{
			jQuery.each(P.list, function(i, valor){
				jQuery("<option/>").html(valor).attr(P.attr).attr({value:valor}).appendTo( select );
			});
		}
		setTimeout(function(){ select.val(P.value); }, 50);
	}
	return this;
};
