(function($){ 
     $.fn.extend({ 
         hide_rightcol: function(options) {       
            $.fn.hide_rightcol.defaults = {
					outer_right_column_box : '.outer_column',
					outer_right_column_box_width_close : 83.5,
					outer_right_column_box_width_open  : 100.5,
					contet_box: '#page div#content',
					contet_box_width_open: 100.417,
					contet_box_width_close: 83.417,
					content_selector: '#page div#content div.body',
					content_inner_selector: '#page div#content div.body div.text',
					content_textcolumns_selector: '#page div#content div.body div.text div.paragraph div.textcolumn',
					content_width: 51.083,
					content_width_wide: 68.247,
					content_inner_width: 47.083,
					content_inner_width_wide: 64.247,
					content_inner_diff: 17,
					content_inner_width_ie: 50.41,
					content_inner_width_wide_ie: 67.581,
					//width_diff: 17.164,
					plain_class: 'enlarge',
					wide_class: 'wide_state',
					small_class: 'small_state',
					rightcol_selector: '#toolscol',
					btn_close_class: 'enlarge_close',
					
					cookie_name: 'content_state',
					cookie_expires: 10	//dauer in Tage
			};
			
			// build main options before element iteration
			var opts = $.extend({}, $.fn.hide_rightcol.defaults, options);
			
			return this.each(function() {
				var $this = $(this);
				
				//init  ----------------
				var savedState = getCookie();
				var currentState = opts.small_class;
				
				var el_content = $(opts.content_selector);
				var el_content_inner = $(opts.content_inner_selector);
				var el_rightcol = $(opts.rightcol_selector);
				var el_txtcolumns = $(opts.content_textcolumns_selector);
				
				/*
				if ($.browser.msie == true && $.browser.version == 6) {
					opts.content_inner_width = opts.content_inner_width_ie;
					opts.content_inner_width_wide = opts.content_inner_width_wide_ie;
				}
				*/
				
				if (savedState == opts.wide_class) {
					openContent($('a.'+opts.plain_class));	
				}
				
				//set clickevent ------------------
				$this.css('cursor', 'pointer').click(function(e){
					$el = $(this);
					var status = currentState;
					
					if (status == opts.wide_class) {
						//close and cookie
						closeContent($el);
					} else {
						//open - delete cookie
						openContent($el);
					}
					return false;
				});
				
				function closeContent(btn) {
					updateTextcolumns('small');
					el_content.removeClass(opts.wide_class);
					el_content.animate({ width: opts.content_width+"em" }, 100, function() { });
					el_content_inner.animate({ width: opts.content_inner_width+"em" }, 100, function() { });
					//el_rightcol.show();
					currentState = opts.small_class;
					btn.removeClass(opts.btn_close_class);
					addCookie(opts.small_class);
					content_box_close();
					closeOuterRightColumnBox();
				}
				
				function openContent(btn) {
					//el_rightcol.hide();
					el_content.animate({ width: opts.content_width_wide+"em" }, 100, function() { });
					el_content_inner.animate({ width: opts.content_inner_width_wide+"em" }, 100, function() { 
						el_content.addClass(opts.wide_class);
						updateTextcolumns('wide');
					});
					currentState = opts.wide_class;
					btn.addClass(opts.btn_close_class);
					addCookie(opts.wide_class);
					content_box_open ();
					openOuterRightColumnBox();
					
				}
				
				
				
				function content_box_open () {
					$(opts.contet_box).css('width' , opts.contet_box_width_open + "em");
				}
				
				function content_box_close () {
					$(opts.contet_box).css('width' , opts.contet_box_width_close + "em");
				}
			
				function openOuterRightColumnBox () {
					$(opts.outer_right_column_box).css('left' , opts.outer_right_column_box_width_open + "em");
				}
				
				function closeOuterRightColumnBox () {
					$(opts.outer_right_column_box).css('left' , opts.outer_right_column_box_width_close + "em");
				}
				
				function updateTextcolumns(mode) {
					var diff = opts.content_inner_diff;
					if (mode == 'small') diff = -1 * diff;
					
					el_txtcolumns.each(function(){
						var $this = $(this);
						var aW = new Array();
						aW = $this.css('width').split("em");
						var w = parseFloat(aW[0]) + diff;
						$this.css('width', w+"em");						
						
					});
					
				}
				
				
				function getState(txt) {
					if (txt == opts.plain_class) return opts.small_class;
					if (txt.indexOf(opts.wide_class) != -1) return opts.wide_class;
					if (txt.indexOf(opts.small_class) != -1) return opts.small_class;
				}
				
				
				
				function addCookie(txt) {
					$.cookie(opts.cookie_name, txt, { expires: opts.cookie_expires });
				}
				
				function removeCookie() {
					txt_all = "";
					$.cookie(opts.cookie_name, txt_all, { expires: opts.cookie_expires });
				}
				
				function getCookie() {
					//null 
					return $.cookie(opts.cookie_name);
					
				}
				
            });
        } 
    }); 
})(jQuery);


