jQuery.fn.spinner = function(settings) {
    settings = jQuery.extend({
        start: 1,
        get_var: "",
        preload: 3,
        div_class: '.spinner'
    }, settings);
    
    
	return this.each(function(){
	    // nothing yet
	    var container = jQuery(this);
	    settings_class = "."+$(container).attr('div_class');
	    
	    // start working (show first item)
	    getPGdata(settings.start);
	    
        $(settings.div_class+' a').bind('click', function() {
            getPGdata($(this).attr('href'));
            return false;
        });
        
        function getPGdata($pid) {
            $.getJSON("/photogallery.html?pid="+$pid+"&"+settings.get_var+"&s="+settings.div_class, function(json){
                $(settings.div_class+" .spinner_image").attr('src', '');
                
                if (json.orientation == "landscape") {
                    $(settings.div_class+" .spinner_landscape").show();
                    $(settings.div_class+" .spinner_portrait").hide();
                } else {
                    $(settings.div_class+" .spinner_landscape").hide();
                    $(settings.div_class+" .spinner_portrait").show();
                    
                }
                
                $(settings.div_class+" .spinner_image").attr('src', json.image);
                
                $(settings.div_class+" .spinner_text").attr('innerHTML', json.description);
                $(settings.div_class+" .spinner_title").attr('innerHTML', json.title);
                
                $(settings.div_class+" .spinner_link_prev").attr('href', json.link_prev);
                $(settings.div_class+" .spinner_link_next").attr('href', json.link_next);
                $(settings.div_class+" .spinner_current").attr('innerHTML', json.current);
                $(settings.div_class+" .spinner_total").attr('innerHTML', json.total);
            });
        }
        

  });	
};