/* 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'; } } /* Add 'trimmed' class to while active */ if (this.curValue != this.maxValue) { this.addClass(); } else { this.removeClass(); } } }