(function($){
/*
serve per creare le select con i dati provenienti dal file json.asp
il ciclo puņ assumere due tipo di valori  p  e q  
*
*/
$.fn.xselect = function(options) {
	var op = this;
        var defaults = {
 			url: "",
 			tipo: "p",
 			dato: "dati",
			size:"1",
			name: null,
			addcss: null,
			frase:null,
			selezionato: 0,
			cambia: true,		
 			callback:	function(){}          
 			};
 
        	var o = $.extend({}, defaults, options);
        	var container = $(this);
			var select = $('<select />');
				$(select).attr("size",o.size).addClass(o.addcss);
				$(select).attr("name",o.name);
			if (o.url){
			this.each(function() {
			container.append(select) 
			creaselect(o.url,o.tipo,container,select,o.dato,o.selezionato,o.cambia,o.frase)
			});
			}
 		return this;
};
function creaselect(url,tipo,contenitore,oggetto,dato,selezionato,cambia,frase){
	$.ajaxSetup({ cache: false });
	$.getJSON(url, {}, function(data) {
		if (tipo=="p"){	
			$(oggetto, contenitore).append($('<option />').val("").append(frase));
			$.each(data, function(key, value){
				var option = $('<option />').val(key).append(value);
				$(oggetto, contenitore).append(option); 
			})//fine ciclo
			$("option:eq(" + selezionato +")", oggetto).attr("selected", "selected");
			if (cambia) {$(oggetto).trigger('change')} 
		}//fine if 
		else if (tipo=="p"){
			$.each(data[dato], function(key, value){
				var option = $('<option />').val(key).append(value);
				$(oggetto, contenitore).append(option); 
			})//fine ciclo
			$("option:eq("+ selezionato + ")", oggetto).attr("selected", "selected");
			if (cambia) {$(oggetto).trigger('change')} 
		}//fine if 

	})//fine getJSON		
}
})(jQuery);
