wp/wp-content/plugins/page-columnist/page-columnist-assistance.js
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 17:39:30 +0200
changeset 7 cf61fcea0001
parent 0 d970ebf37754
permissions -rw-r--r--
resynchronize code repo with production
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
(function($) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
	//jQuery UI 1.5.2 doesn't support "option" as  getter/setter, so we have to apply a hotfix instead 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
	var needs_jquery_hotfix = (($.ui.version === undefined) || (parseInt($.ui.version.split('.')[1]) < 6));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
	if (needs_jquery_hotfix) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
		$.extend($.ui.draggable.prototype, {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
			option: function(key, value) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
				if (value === undefined) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
					return this.options[key];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
				if (key == 'containment') {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
					this.containment = value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
				else{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
					this.options[key] = value;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
		$.extend($.ui.draggable, {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
			getter : 'option'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
	//extend jQuery with pageColumnist object
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
	$.fn.extend({
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
		pageColumnist: function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
			var self = $(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
			self.box = function(elem) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
				var box = $(elem).offset();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
				box.width = $(elem).width();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
				box.height = $(elem).height();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
				return box;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
			self.update_info = function(i, elem) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
				var b = self.box(self.columns[i]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
				var o = self.box(self);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
				$(elem).css({top: b.top+'px', left: b.left+3+'px', width: '50px'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
				//changed to extended data info
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
				$(elem).find('b').html(Math.round(parseFloat($(self.columns[i]).attr('data')) * 100.0) / 100.0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
				$(elem).find('span').html(b.width);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
			self.update_spacer = function(i, elem) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
				var b1 = self.box(self.columns[i]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
				var b2 = self.box(self.columns[i+1]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
				$(elem).css({top: b1.top+'px', left: b1.left+b1.width+'px', width: b2.left - (b1.left+b1.width)+'px', height: b1.height+'px' });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
			self.recalc_containments = function(i, elem) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
				var b1 = self.box(self.columns[i]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
				var b2 = self.box(self.columns[i+1]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
				var body = self.box($('body'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
				self.containments[i] = [b1.left+50, 0, b2.left+b2.width-50-self.box(elem).width, body.height]
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
			self.adjust_columns = function(spacer) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
				var idx = $(spacer).draggable('option', 'colidx');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
				var perc = $(spacer).draggable('option', 'initial_perc');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
				var s = self.box(spacer);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
				var b1 = self.box(self.columns[idx]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
				var b2 = self.box(self.columns[idx+1]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
				var main = self.box(self);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
				//reset affected columns
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
				var w = '0px';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
				$(self.columns[idx]).css({width: w});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
				$(self.columns[idx+1]).css({width: w});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
				//calculate new width
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
				w = Math.round((s.left - b1.left) * 100.0) / main.width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
				$(self.columns[idx]).css({ width: w + '%'}).attr('data', w);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
				b1 = self.box(self.columns[idx]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
				w = perc - w;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
				$(self.columns[idx+1]).css({ width: w + '%'}).attr('data', w);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
				self.make_equal_height();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
			self.make_equal_height = function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
				var h = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
				$(self.columns).each(function(i, elem) { h = Math.max(h, $(elem).height()); });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
				$('#cscp_ghost').css({'height' : h+'px'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
				$('.cspc-assist-spacer').css({'height' : h+'px'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
			self.columns = $('.cspc-column', self);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
			self.containments = [];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
			$('body').prepend('<div id="cscp_ghost" class="cspc-assist-col"></div>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
			$('#cscp_ghost').css(self.box(self)).hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
			for (var i=0; i<self.columns.length; i++) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
				$('body').append('<div class="cspc_assist_col_info"><b></b>&nbsp;%<br/>(<span></span>&nbsp;px)</div>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
				if (i > 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
					$('body').append('<div class="cspc-assist-spacer"></div>');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
					self.containments.push([0,0,0,0]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
			$('.cspc_assist_col_info, .cspc-assist-spacer').css({position: 'absolute', 'z-index': 1001}).hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
			self.spacer = $('.cspc-assist-spacer');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
			$('.cspc-assist-spacer').each(self.recalc_containments);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
			$('div.cspc_assist_col_info').css({ position: 'absolute', 'z-index': 1000, overflow:'hidden', color: '#000', 'background-color': '#fff', border: 'solid 1px black', padding: '3px', 'margin-top': '3px'}).each(self.update_info);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
			$('div.cspc-assist-spacer').each(self.update_spacer).each(function(i,e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
				var b = self.box(self);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
				var x = needs_jquery_hotfix ? {} : { containment : self.containments[i] };
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
				//TODO: containment is not always valid, to be changed in later versions
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
				$(e).draggable($.extend(x,{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
					axis: 'x', 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
					colidx: i,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
					/* containment: [b.left+20, b.top, b.left+b.width-20, b.top+b.height],  //didn't work for jquery.ui < 1.7.0, subject of later workarrounds */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
					start: function(event, ui){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
						try{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
							var idx = $(event.target).draggable('option', 'colidx');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
							var b1 = self.box(self.columns[idx]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
							var b2 = self.box(self.columns[idx+1]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
							$(self.spacer).each(function(i, elem) { 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
								if(i!=idx) 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
									$(elem).draggable('disable').css('z-index', 999); 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
								else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
									$(elem).addClass('cspc-assist-spacer-active');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
							});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
							if(needs_jquery_hotfix) $(event.target).draggable('option', 'containment', self.containments[idx]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
							$(event.target).draggable('option', 'initial_perc', parseFloat($(self.columns[idx]).attr('data')) + parseFloat($(self.columns[idx+1]).attr('data')));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
							//$(event.target).draggable('option', 'initial_perc', parseFloat($(self.columns[idx]).css('width')) + parseFloat($(self.columns[idx+1]).css('width')));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
						}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
						catch(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
						}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
					},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
					drag: function(event, ui) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
						try{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
							self.adjust_columns(event.target);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
							$('div.cspc_assist_col_info').each(self.update_info);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
						}catch(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
						}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
					},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
					stop: function(event, ui){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
						$(self.spacer).each(function(j, elem) { $(elem).draggable('enable').css('z-index', 1001).removeClass('cspc-assist-spacer-active'); });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
						try{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
							self.adjust_columns(event.target);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
							$('div.cspc_assist_col_info').each(self.update_info);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
						}catch(e) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
						}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
						$(self.spacer).each(self.recalc_containments);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
					}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
				}));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
		
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
			//keep tracking the resize of window
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
			$(window).resize(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
				$('#cscp_ghost').css(self.box(self))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
				$('div.cspc_assist_col_info').each(self.update_info);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
				$('div.cspc-assist-spacer').each(self.update_spacer);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
				self.make_equal_height();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
			$('#cspc-col-spacing').change(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
				if (self.columns.length == 0) return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
				var space = parseFloat($(this).val());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
				var base = 100.0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
				var perc = ((base - (self.columns.length - 1) * space ) / self.columns.length);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
				if ($.browser.msie) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
					$(self.columns).each(function(i, elem) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
						$(elem).css({ width: '0.001%'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
					});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
					space = space * 0.66 ; //because IE is unable to calculate the sums correctly, we have to trick it little bit
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
				for (var i=0; i<self.columns.length; i++) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
					$(self.columns[i]).css({ width: perc+'%'}).attr('data', perc);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
					if (i != 0) $(self.columns[i]).css({ marginLeft: space+'%'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
				$(window).trigger('resize');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
				return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
			
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
			self.make_equal_height();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
			return $(this);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
	});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
	$(document).ready(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
		//show always firefox scroll bars 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
		$('body').css({'overflow' : 'scroll' });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
		
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
		var wpadmbar = $('#wpadminbar').height();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
		var assistbar = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
			show: (0 + wpadmbar),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
			hide: (-36 + wpadmbar)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
		};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
		
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
		//assistance toolbar toggle
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
		$('#cspc-assist-bar-expander').click(function(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
			$('#cspc-assist-bar').animate({ top: (parseInt($('#cspc-assist-bar').css('top')) == assistbar.show ? assistbar.hide+'px' : assistbar.show+'px') });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
		$('#cspc-assist-bar').css({ top: assistbar.hide+'px'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
		//assistance toolbar spinner init
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
		$('#cspc-col-spacing').spin({max:10,min:0,imageBasePath: cspc_page_columnist_l10n.imageBasePath, interval: 0.5 });
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
		//columnizer setup
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
		$('#cspc-content').pageColumnist();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
		
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
		//columnized area ghosting toggle
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
		$('#cspc-columns-sizing').click(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
			var checked = $(this).attr('checked');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
			$('#cscp_ghost').toggle(checked);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
			$('.cspc_assist_col_info, .cspc-assist-spacer').toggle(checked);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
		//saving all changes and reload
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
		$('#cspc-save-changes').click(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
			$(this).blur();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
			var cols = [];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
			$('#cspc-content .cspc-column').each(function(i, elem) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
				cols.push(Math.round(parseFloat($(elem).attr('data'))*100)/100.0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
				//cols.push(Math.round(parseFloat($(elem).css('width'))*100)/100.0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
			params = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
				type: 'POST', 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
				url: cspc_page_columnist_l10n.adminUrl+'admin-ajax.php',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
				data: {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
					action: 'cspc_save_changes',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
					page_id: cspc_page_columnist_l10n.pageId,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
					spacing: $('#cspc-col-spacing').val(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
					distribution: cols.join('|'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
					default_spacing: $('#cspc-default-spacing').attr('checked')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
				},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
				success: function(data, textStatus) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
					window.setTimeout("location.reload(true)", 500);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
				},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
				error: function(xhr, textStatus, error) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
					alert(xhr.responseText);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
			};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
			$.ajax(params);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
		});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
		
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
	});	
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
})(jQuery);