/* Thank you Drew McLellan for starting us off
with http://24ways.org/2006/tasty-text-trimmer */
TextTrimmer = Class.create();
TextTrimmer.prototype = {
initialize: function(trimmerContainer, sliderID, chunkClass, minValue, maxValue, prefix) {
/* if (prefix == '') console.log('Trimmer Init Detected');
if (prefix != '') console.log('Livesearch Trimmer Init');
*/
var thisTrimmer = this;
this.trimmerContainer = prefix+trimmerContainer;
this.sliderID = prefix+sliderID;
this.chunkClass = chunkClass;
this.minValue = minValue;
this.maxValue = maxValue;
this.curValue = maxValue;
this.prefix = prefix;
this.chunks = false;
/* Initialize slider */
$(this.sliderID).innerHTML = '
';
this.TrimSlider = new Control.Slider(prefix+"trimmerhandle", prefix+"trimmertrack", {
range: $R(thisTrimmer.minValue, thisTrimmer.maxValue),
sliderValue: thisTrimmer.maxValue,
onSlide: function(value) { thisTrimmer.doTrim(value); },
onChange: function(value) { thisTrimmer.doTrim(value); }
});
/* Add functionality to trimmer links */
Event.observe($(prefix+'trimmerLess'), 'click', function() {
thisTrimmer.TrimSlider.setValue(thisTrimmer.curValue - 10);
return false;
});
Event.observe($(prefix+'trimmerMore'), 'click', function() {
thisTrimmer.TrimSlider.setValue(thisTrimmer.curValue + 10);
return false;
});
Event.observe($(prefix+'trimmerExcerpts'), 'click', function() {
thisTrimmer.TrimSlider.setValue(40);
$(prefix+'trimmerExcerpts').style.display = 'none';
$(prefix+'trimmerHeadlines').style.display = 'block';
return false;
});
Event.observe($(prefix+'trimmerHeadlines'), 'click', function() {
thisTrimmer.TrimSlider.setValue(0);
$(prefix+'trimmerHeadlines').style.display = 'none';
$(prefix+'trimmerFulllength').style.display = 'block';
return false;
});
Event.observe($(prefix+'trimmerFulllength'), 'click', function() {
thisTrimmer.TrimSlider.setValue(100);
$(prefix+'trimmerFulllength').style.display = 'none';
$(prefix+'trimmerExcerpts').style.display = 'block';
return false;
});
$(this.trimmerContainer).style.display = 'none';
},
addClass: function() {
if (this.prefix != '') {
$('dynamic-content').addClassName("trimmed");
} else {
$('current-content').addClassName("trimmed");
}
},
removeClass: function() {
if (this.prefix != '') {
$('dynamic-content').removeClassName("trimmed");
} else {
$('current-content').removeClassName("trimmed");
}
},
trimAgain: function(value) {
this.loadChunks();
this.doTrim(value);
},
loadChunks: function() {
if (this.prefix != '') {
/* Dynamic chunks */
var everything = $('dynamic-content').getElementsByClassName(this.chunkClass);
} else {
/* Normal chunks */
var everything = $('current-content').getElementsByClassName(this.chunkClass);
}
this.chunks = [];
for (i=0; i' + a + ' [...]';
}
}
/* Add 'trimmed' class to while active */
if (this.curValue != this.maxValue) {
this.addClass();
} else {
this.removeClass();
}
}
}