$.fn.swoofing = function(options){
    var defaults = {
        "hide": false,
        "method1": 'easeInQuad',
        "method2": 'easeOutQuad'
    };
    
    var obj = jQuery(this);
    var content_div = jQuery("#content_middle");
    var map_inner_div = jQuery("#main_map");
    var map_div = jQuery("#content_map");
    var content_right = jQuery("#content_right");
    var smaller_map_size = 245;
    var normal_map_size = 350;	
	var smaller_content_size = 340;
    var normal_content_size = 390;	
	
	
    var options = jQuery.extend(defaults, options);
    var method1 = defaults.method1;
    var method2 = defaults.method2;
    function resizeMap(){
        
        if (map_div.width() === smaller_map_size) {
            resizeInnerMap(0);
            map_div.width(normal_map_size +"px");
			content_right.width(normal_map_size +"px");
			
            map_inner_div.width( ( normal_map_size - 20 ) + "px");
            content_div.width(normal_content_size + "px");
            
        }
        else {
            resizeInnerMap(1);
            map_div.width(smaller_map_size +"px");
			content_right.width(smaller_map_size +"px");
            content_div.width(smaller_content_size + "px");
            map_inner_div.width( ( smaller_map_size -20 ) +"px");
            
        }
    }
    
    function clicker(jQueryo){
        //prevent click event until animation is finished
        jQuery(jQueryo).unbind(clicker);
        
        obj.each(function(i){
        
            if (jQuery(this).next().is(":hidden")) {
                show_sidebar(jQuery(this), i);
            }
            else {
                hide_sidebar(jQuery(this), i);
            }
        });//each	
    }
    function hide_sidebar(jQueryo, i){
    
        var count = i;
        var h1 = jQueryo;
        h1.find("span").hide({
            "duration": 250,
            "easing": method1
        });
        
        h1.next().slideUp({
            duration: 500,
            easing: method2,
            complete: function(){
                h1.animate({
                    width: 36
                }, {
                    duration: 250,
                    easing: method1,
                    complete: function(){
                        if (count === obj.length - 1) {
                            resizeMap();
                        }
                    }
                });
                //h1.next().next("div .bg").slideUp({duration:10,easing:method2});
                //h1.next().next("div .bg").remove();
                jQuery("img", h1).bind("click", clicker);
                
                
            }
        });
        
        
        
        
        //jQuery("#main_activity").animate({width:315}, {duration:250, easing: method1});		
    
    }
    function show_sidebar(jQueryo, i){
    
        if (i === 0) {
            resizeMap();
        }
        
        jQueryo.animate({
            "width": 192
        }, {
            duration: 0,
            easing: method1,
            complete: function(){
                jQueryo.next().slideDown({
                    duration: 500,
                    easing: method2
                });
                jQueryo.find("span").show();
                //jQuery("#main_activity").animate({width:200}, {duration:250, easing: method1});
                jQuery("img", jQueryo).bind("click", clicker);
                
            }
        });
        
        
        
    }
    
    return this.each(function(i){
    
    
        jQuery("img", obj).click(clicker);//click
        if (options.hide) {
            jQuery(window).bind("load", function(){
                if (i === obj.length - 1) {
                    obj.each(function(i){
                        hide_sidebar(jQuery(this), i);
                    });
                }
            });
        }
        
    });//each
};
