// JavaScript & jQuery Plugins for DD - rel5, 25Jan10
/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
  */
(function($){
$.dimensions = {
version: '@VERSION'
};
$.each( [ 'Height', 'Width' ], function(i, name){
$.fn[ 'inner' + name ] = function() {
if (!this[0]) return;
var torl = name == 'Height' ? 'Top'    : 'Left',  // top or left
borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
return this.is(':visible') ? this[0]['client' + name] : num( this, name.toLowerCase() ) + num(this, 'padding' + torl) + num(this, 'padding' + borr);
};
$.fn[ 'outer' + name ] = function(options) {
if (!this[0]) return;
var torl = name == 'Height' ? 'Top'    : 'Left',  // top or left
borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
options = $.extend({ margin: false }, options || {});
var val = this.is(':visible') ? 
this[0]['offset' + name] : 
num( this, name.toLowerCase() )
+ num(this, 'border' + torl + 'Width') + num(this, 'border' + borr + 'Width')
+ num(this, 'padding' + torl) + num(this, 'padding' + borr);
return val + (options.margin ? (num(this, 'margin' + torl) + num(this, 'margin' + borr)) : 0);
};
});
$.each( ['Left', 'Top'], function(i, name) {
$.fn[ 'scroll' + name ] = function(val) {
if (!this[0]) return;
return val != undefined ?
this.each(function() {
this == window || this == document ?
window.scrollTo( 
name == 'Left' ? val : $(window)[ 'scrollLeft' ](),
name == 'Top'  ? val : $(window)[ 'scrollTop'  ]()
) :
this[ 'scroll' + name ] = val;
}) :
this[0] == window || this[0] == document ?
self[ (name == 'Left' ? 'pageXOffset' : 'pageYOffset') ] ||
$.boxModel && document.documentElement[ 'scroll' + name ] ||
document.body[ 'scroll' + name ] :
this[0][ 'scroll' + name ];
};
});
$.fn.extend({
position: function() {
var left = 0, top = 0, elem = this[0], offset, parentOffset, offsetParent, results;
if (elem) {
offsetParent = this.offsetParent();
offset       = this.offset();
parentOffset = offsetParent.offset();
offset.top  -= num(elem, 'marginTop');
offset.left -= num(elem, 'marginLeft');
parentOffset.top  += num(offsetParent, 'borderTopWidth');
parentOffset.left += num(offsetParent, 'borderLeftWidth');
results = {
top:  offset.top  - parentOffset.top,
left: offset.left - parentOffset.left
};
}
return results;
},
offsetParent: function() {
var offsetParent = this[0].offsetParent;
while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') )
offsetParent = offsetParent.offsetParent;
return $(offsetParent);
}
});
function num(el, prop) {
return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
};
})(jQuery);
/*
 * positionBy 1.0.7 (2008-01-29)
 * Copyright (c) 2006,2007 Jonathan Sharp (http://jdsharp.us)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
  * http://jdsharp.us/
 */
(function($){var A=function(a,b,c,d){this.x1=a;this.x2=c;this.y1=b;this.y2=d};A.prototype.contains=function(a){return(this.x1<=a.x1&&a.x2<=this.x2)&&(this.y1<=a.y1&&a.y2<=this.y2)};A.prototype.transform=function(x,y){return new A(this.x1+x,this.y1+y,this.x2+x,this.y2+y)};$.fn.positionBy=function(q){var r=new Date();if(this.length==0){return this}var q=$.extend({target:null,targetPos:null,elementPos:null,x:null,y:null,positions:null,addClass:false,force:false,container:window},q);if(q.x!=null){var s=q.x;var t=q.y;var u=0;var v=0}else{var w=$($(q.target)[0]);var u=w.outerWidth();var v=w.outerHeight();var x=w.offset();var s=x.left;var t=x.top}var y=s+u;var z=t+v;return this.each(function(){var c=$(this);if(!c.is(':visible')){c.css({left:-3000,top:-3000}).show()}var d=c.outerWidth();var e=c.outerHeight();var f=[];var g=[];f[0]=new A(y,t,y+d,t+e);g[0]=[1,7,4];f[1]=new A(y,z-e,y+d,z);g[1]=[0,6,4];f[2]=new A(y,z,y+d,z+e);g[2]=[1,3,10];f[3]=new A(y-d,z,y,z+e);g[3]=[1,6,10];f[4]=new A(s,z,s+d,z+e);g[4]=[1,6,9];f[5]=new A(s-d,z,s,z+e);g[5]=[6,4,9];f[6]=new A(s-d,z-e,s,z);g[6]=[7,1,4];f[7]=new A(s-d,t,s,t+e);g[7]=[6,0,4];f[8]=new A(s-d,t-e,s,t);g[8]=[7,9,4];f[9]=new A(s,t-e,s+d,t);g[9]=[0,7,4];f[10]=new A(y-d,t-e,y,t);g[10]=[0,7,3];f[11]=new A(y,t-e,y+d,t);g[11]=[0,10,3];f[12]=new A(y-d,t,y,t+e);g[12]=[13,7,10];f[13]=new A(y-d,z-e,y,z);g[13]=[12,6,3];f[14]=new A(s,z-e,s+d,z);g[14]=[15,1,4];f[15]=new A(s,t,s+d,t+e);g[15]=[14,0,9];if(q.positions!==null){var h=q.positions[0]}else if(q.targetPos!=null&&q.elementPos!=null){var h=[];h[0]=[];h[0][0]=15;h[0][1]=7;h[0][2]=8;h[0][3]=9;h[1]=[];h[1][0]=0;h[1][1]=12;h[1][2]=10;h[1][3]=11;h[2]=[];h[2][0]=2;h[2][1]=3;h[2][2]=13;h[2][3]=1;h[3]=[];h[3][0]=4;h[3][1]=5;h[3][2]=6;h[3][3]=14;var h=h[q.targetPos][q.elementPos]}var i=f[h];var j=h;if(!q.force){$window=$(window);var k=$window.scrollLeft();var l=$window.scrollTop();var m=new A(k,l,k+$window.width(),l+$window.height());var n;if(q.positions){n=q.positions}else{n=[h]}var o=[];while(n.length>0){var p=n.shift();if(o[p]){continue}o[p]=true;if(!m.contains(f[p])){if(q.positions===null){n=jQuery.merge(n,g[p])}}else{i=f[p];break}}}c.parents().each(function(){var a=$(this);if(a.css('position')!='static'){var b=a.offset();i=i.transform(-b.left,-b.top);return false}});c.css({left:i.x1,top:i.y1});if(q.addClass){c.removeClass('positionBy0 positionBy1 positionBy2 positionBy3 positionBy4 positionBy5 '+'positionBy6 positionBy7 positionBy8 positionBy9 positionBy10 positionBy11 '+'positionBy12 positionBy13 positionBy14 positionBy15').addClass('positionBy'+p)}})}})(jQuery);
/*
 * jdMenu 1.4.1 (2008-03-31)
 * Copyright (c) 2006,2007 Jonathan Sharp (http://jdsharp.us)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 * http://jdsharp.us/
 */
$(function() { $('ul.jd_menu').jdMenu(); });
(function($){
function addEvents(ul) {
var settings = $.data( $(ul).parents().andSelf().filter('ul.jd_menu')[0], 'jdMenuSettings' );
$('> li', ul)
.bind('mouseenter.jdmenu mouseleave.jdmenu', function(evt) {
$(this).toggleClass('jdm_hover');
var ul = $('> ul', this);
if ( ul.length == 1 ) {
clearTimeout( this.$jdTimer );
var enter = ( evt.type == 'mouseenter' );
var fn = ( enter ? showMenu : hideMenu );
this.$jdTimer = setTimeout(function() {
fn( ul[0], settings.onAnimate, settings.isVertical );
}, enter ? settings.showDelay : settings.hideDelay );
}
})
.bind('click.jdmenu', function(evt) {
var ul = $('> ul', this);
if ( ul.length == 1 && 
( settings.disableLinks == false || $(this).hasClass('accessible') ) ) {
showMenu( ul, settings.onAnimate, settings.isVertical );
return false;
}
if ( evt.target == this ) {
var link = $('> a', evt.target).not('.accessible');
if ( link.length > 0 ) {
var a = link[0];
if ( !a.onclick ) {
window.open( a.href, a.target || '_self' );
} else {
$(a).trigger('click');
}
}
}
if ( settings.disableLinks || 
( !settings.disableLinks && !$(this).parent().hasClass('jd_menu') ) ) {
$(this).parent().jdMenuHide();
evt.stopPropagation();
}
})
.find('> a')
.bind('focus.jdmenu blur.jdmenu', function(evt) {
var p = $(this).parents('li:eq(0)');
if ( evt.type == 'focus' ) {
p.addClass('jdm_hover');
} else { 
p.removeClass('jdm_hover');
}
})
.filter('.accessible')
.bind('click.jdmenu', function(evt) {
evt.preventDefault();
});
}

function showMenu(ul, animate, vertical) {
var ul = $(ul);
if ( ul.is(':visible') ) {
return;
}
ul.bgiframe();
var li = ul.parent();
ul .trigger('jdMenuShow')
.positionBy({ 	target: 	li[0], 
targetPos: 	( vertical === true || !li.parent().hasClass('jd_menu') ? 1 : 3 ), 
elementPos: 0,
hideAfterPosition: true
});
if ( !ul.hasClass('jdm_events') ) {
ul.addClass('jdm_events');
addEvents(ul);
}
li	.addClass('jdm_active')
.siblings('li').find('> ul:eq(0):visible')
.each(function(){
hideMenu( this ); 
});
if ( animate === undefined ) {
ul.show();
} else {
animate.apply( ul[0], [true] );
}
}
function hideMenu(ul, animate) {
var ul = $(ul);
$('.bgiframe', ul).remove();
ul	.filter(':not(.jd_menu)')
.find('> li > ul:eq(0):visible')
.each(function() {
hideMenu( this );
})
.end();
if ( animate === undefined ) {
ul.hide()
} else {
animate.apply( ul[0], [false] );
}
ul .trigger('jdMenuHide')
.parents('li:eq(0)')
.removeClass('jdm_active jdm_hover')
.end()
.find('> li')
.removeClass('jdm_active jdm_hover');
}
$.fn.jdMenu = function(settings) {
var settings = $.extend({
showDelay: 		200,
hideDelay: 		500,
disableLinks:	true
//onAnimate:	null
}, settings);
if ( !$.isFunction( settings.onAnimate ) ) {
settings.onAnimate = undefined;
}
return this.filter('ul.jd_menu').each(function() {
$.data(	this, 
'jdMenuSettings', 
$.extend({ isVertical: $(this).hasClass('sidemenu') }, settings) 
);
addEvents(this);
});
};
$.fn.jdMenuUnbind = function() {
$('ul.jdm_events', this)
.unbind('.jdmenu')
.find('> a').unbind('.jdmenu');
};
$.fn.jdMenuHide = function() {
return this.filter('ul').each(function(){ 
hideMenu( this );
});
};
$(window)
.bind('click.jdmenu', function(){
$('ul.jd_menu ul:visible').jdMenuHide();
});
})(jQuery);
/* Plugins/bgiframe Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Version 2.1.1
 */
(function($){
$.fn.bgIframe = $.fn.bgiframe = function(s) {
// This is only for IE6
if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
s = $.extend({
top     : 'auto',
left    : 'auto', 
width   : 'auto',
height  : 'auto',
opacity : true,
src     : 'javascript:false;'
}, s || {});
var prop = function(n){return n&&n.constructor==Number?n+'px':n;},
html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
'style="display:block;position:absolute;z-index:-1;'+
(s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
'"/>';
return this.each(function() {
if ( $('> iframe.bgiframe', this).length == 0 )
this.insertBefore( document.createElement(html), this.firstChild );
});
}
return this;
};
})(jQuery);

function setBookmark(url,str){
 if (str=='') {str=url};
 if (document.all) {window.external.AddFavorite(url,str)}
 else {alert('Press Ctrl and D to add a bookmark to this page.')};
} 
/*
* Facebox (for jQuery)
* version: 1.2 (05/05/2008)
* Examples at http://famspam.com/facebox/
* Licensed under the MIT: http://www.opensource.org/licenses/mit-license.php
* Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ]
*/
(function($) {
$.facebox = function(data, klass) {
$.facebox.loading()

if (data.ajax) fillFaceboxFromAjax(data.ajax)
else if (data.image) fillFaceboxFromImage(data.image)
else if (data.div) fillFaceboxFromHref(data.div)
else if ($.isFunction(data)) data.call($)
else $.facebox.reveal(data, klass)
}
$.extend($.facebox, {
settings: {
opacity      : .75,
overlay      : true,
loadingImage : '/img/fb/loading.gif',
closeImage   : '/img/fb/closelabel.gif',
imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
faceboxHtml  : '\
<div id="facebox" style="display:none;"> \
<div class="popup"> \
<table> \
<tbody> \
<tr> \
<td class="tl"/><td class="tm"/><td class="tr"/> \
</tr> \
<tr> \
<td class="sl"/> \
<td class="body"> \
<div class="footer"> \
<a href="#" class="close"> \
<img src="/img/fb/closelabel.gif" title="close" class="close_image" /> \
</a> \
</div> \
<div class="content"> \
</div> \
</td> \
<td class="sr"/> \
</tr> \
<tr> \
<td class="bl"/><td class="bm"/><td class="br"/> \
</tr> \
</tbody> \
</table> \
</div> \
</div>'
},
loading: function() {
init()
if ($('#facebox .loading').length == 1) return true
showOverlay()
$('#facebox .content').empty()
$('#facebox .body').children().hide().end().
append('<div class="loading"><img src="'+$.facebox.settings.loadingImage+'"/></div>')
$('#facebox').css({
top:	getPageScroll()[1] + (getPageHeight() / 10),
left:	385.5
}).show()
$(document).bind('keydown.facebox', function(e) {
if (e.keyCode == 27) $.facebox.close()
return true
})
$(document).trigger('loading.facebox')
},
reveal: function(data, klass) {
$(document).trigger('beforeReveal.facebox')
if (klass) $('#facebox .content').addClass(klass)
$('#facebox .content').append(data)
$('#facebox .loading').remove()
$('#facebox .body').children().fadeIn('normal')
$('#facebox').css('left', $(window).width() / 2 - ($('#facebox table').width() / 2))
$(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
},
close: function() {
$(document).trigger('close.facebox')
return false
}})
$.fn.facebox = function(settings) {
init(settings)
function clickHandler() {
$.facebox.loading(true)
var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
if (klass) klass = klass[1]
fillFaceboxFromHref(this.href, klass)
return false
}
return this.click(clickHandler)
}
function init(settings) {
if ($.facebox.settings.inited) return true
else $.facebox.settings.inited = true
$(document).trigger('init.facebox')
makeCompatible()
var imageTypes = $.facebox.settings.imageTypes.join('|')
$.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i')
if (settings) $.extend($.facebox.settings, settings)
$('body').append($.facebox.settings.faceboxHtml)
var preload = [ new Image(), new Image() ]
preload[0].src = $.facebox.settings.closeImage
preload[1].src = $.facebox.settings.loadingImage
$('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
preload.push(new Image())
preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
})
$('#facebox .close').click($.facebox.close)
$('#facebox .close_image').attr('src', $.facebox.settings.closeImage)
}
// getPageScroll() by quirksmode.com
function getPageScroll() {
var xScroll, yScroll;
if (self.pageYOffset) {
yScroll = self.pageYOffset;
xScroll = self.pageXOffset;
} else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
yScroll = document.documentElement.scrollTop;
xScroll = document.documentElement.scrollLeft;
} else if (document.body) {// all other Explorers
yScroll = document.body.scrollTop;
xScroll = document.body.scrollLeft;	
}
return new Array(xScroll,yScroll) 
}
// Adapted from getPageSize() by quirksmode.com
function getPageHeight() {
var windowHeight
if (self.innerHeight) {	// all except Explorer
windowHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowHeight = document.documentElement.clientHeight;
} else if (document.body) { // other Explorers
windowHeight = document.body.clientHeight;
}	
return windowHeight
}
// Backwards compatibility
function makeCompatible() {
var $s = $.facebox.settings
$s.loadingImage = $s.loading_image || $s.loadingImage
$s.closeImage = $s.close_image || $s.closeImage
$s.imageTypes = $s.image_types || $s.imageTypes
$s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
}
function fillFaceboxFromHref(href, klass) {
if (href.match(/#/)) {
var url    = window.location.href.split('#')[0]
var target = href.replace(url,'')
$('#facebox .body').css('width', 561)
$.facebox.reveal($(target).clone().show(), klass)
} else if (href.match($.facebox.settings.imageTypesRegexp)) {
$('#facebox .body').css('width', 650)
fillFaceboxFromImage(href, klass)
} else {
$('#facebox .body').css('width', 561)
fillFaceboxFromAjax(href, klass)
}
}
function fillFaceboxFromImage(href, klass) {
var image = new Image()
image.onload = function() {
$.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
}
image.src = href
}
function fillFaceboxFromAjax(href, klass) {
$.get(href, function(data) { $.facebox.reveal(data, klass) })
}
function skipOverlay() {
return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null 
}
function showOverlay() {
if (skipOverlay()) return
if ($('facebox_overlay').length == 0) 
$("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')
$('#facebox_overlay').hide().addClass("facebox_overlayBG")
.css('opacity', $.facebox.settings.opacity)
.click(function() { $(document).trigger('close.facebox') })
.fadeIn(200)
return false
}
function hideOverlay() {
if (skipOverlay()) return
$('#facebox_overlay').fadeOut(200, function(){
$("#facebox_overlay").removeClass("facebox_overlayBG")
$("#facebox_overlay").addClass("facebox_hide") 
$("#facebox_overlay").remove()
})
return false
}
$(document).bind('close.facebox', function() {
$(document).unbind('keydown.facebox')
$('#facebox').fadeOut(function() {
$('#facebox .content').removeClass().addClass('content')
hideOverlay()
$('#facebox .loading').remove()})})})(jQuery);
// Biggerlink Version 1.0 - October 19, 2007
(function($){$.fn.biggerlink=function(a){var b={hoverclass:'hover',clickableclass:'hot',follow:true};if(a){$.extend(b,a)}$(this).filter(function(){return $('a',this).length>0}).addClass(b.clickableclass).each(function(i){$(this).attr('title',$('a[title]:first',this).attr('title'));$(this).mouseover(function(){window.status=$('a:first',this).attr('href');$(this).addClass(b.hoverclass)}).mouseout(function(){window.status='';$(this).removeClass(b.hoverclass)}).bind('click',function(){$(this).find('a:first').trigger('click')}).find('a').bind('focus',function(){$(this).parents('.'+b.clickableclass).addClass(b.hoverclass)}).bind('blur',function(){$(this).parents('.'+b.clickableclass).removeClass(b.hoverclass)}).end().find('a:first').bind('click',function(e){if(b.follow==true){window.location=this.href}e.stopPropagation()}).end().find('a',this).not(':first').bind('click',function(){$(this).parents('.'+b.clickableclass).find('a:first').trigger('click');return false})});return this}})(jQuery);
/*
 * jQuery Expander plugin
 * Version 0.4  (12/09/2008)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * From http://plugins.learningjquery.com/expander/jquery.expander.js
 */
(function($) {
$.fn.expander = function(options) {
var opts = $.extend({}, $.fn.expander.defaults, options);
var delayedCollapse;
return this.each(function() {
var $this = $(this);
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
var cleanedTag, startTags, endTags;	
var allText = $this.html();
var startText = allText.slice(0, o.slicePoint).replace(/\w+$/,'');
startTags = startText.match(/<\w[^>]*>/g);
if (startTags) {startText = allText.slice(0,o.slicePoint + startTags.join('').length).replace(/\w+$/,'');}
if (startText.lastIndexOf('<') > startText.lastIndexOf('>') ) {
startText = startText.slice(0,startText.lastIndexOf('<'));
}
var endText = allText.slice(startText.length);
// swap temporary element for this one
$("span.hidedetails").addClass("details");
$("span.hidedetails").removeClass("hidedetails");
// create necessary expand/collapse elements if they don't already exist
if (!$('span.details', this).length) {
// end script if text length isn't long enough.
if ( endText.replace(/\s+$/,'').split(' ').length < o.widow ) { return; }
// otherwise, continue...    
if (endText.indexOf('</') > -1) {
endTags = endText.match(/<(\/)?[^>]*>/g);
for (var i=0; i < endTags.length; i++) {
if (endTags[i].indexOf('</') > -1) {
var startTag, startTagExists = false;
for (var j=0; j < i; j++) {
startTag = endTags[j].slice(0, endTags[j].indexOf(' ')).replace(/(\w)$/,'$1>');
if (startTag == rSlash(endTags[i])) {
  startTagExists = true;
}
}              
if (!startTagExists) {
startText = startText + endTags[i];
var matched = false;
for (var s=startTags.length - 1; s >= 0; s--) {
  if (startTags[s].slice(0, startTags[s].indexOf(' ')).replace(/(\w)$/,'$1>') == rSlash(endTags[i]) 
  && matched == false) {
    cleanedTag = cleanedTag ? startTags[s] + cleanedTag : startTags[s];
    matched = true;
  }
};
}
}
}
endText = cleanedTag && cleanedTag + endText || endText;
}
$this.html([
startText,
'<span class="read-more">',
o.expandPrefix,
'<a href="#">',
o.expandText,
'</a>',
'</span>',
'<span class="details">',
endText,
'</span>'
].join('')
);
}
var $thisDetails = $('span.details', this),
$readMore = $('span.read-more', this);
$thisDetails.hide();
$readMore.find('a').click(function() {
$readMore.hide();

if (o.expandEffect === 'show' && !o.expandSpeed) {
o.beforeExpand($this);
$thisDetails.show();
o.afterExpand($this);
delayCollapse(o, $thisDetails);
} else {
o.beforeExpand($this);
$thisDetails[o.expandEffect](o.expandSpeed, function() {
$thisDetails.css({zoom: ''});
o.afterExpand($this);
delayCollapse(o, $thisDetails);
});
}
return false;
});
if (o.userCollapse) {
$this
.find('span.details').append('<span class="re-collapse">' + o.userCollapsePrefix + '<a href="#">' + o.userCollapseText + '</a></span>');
$this.find('span.re-collapse a').click(function() {
clearTimeout(delayedCollapse);
var $detailsCollapsed = $(this).parents('span.details');
reCollapse($detailsCollapsed);
o.onCollapse($this, true);
return false;
});
}
});
function reCollapse(el) {
el.hide();
var $readMore= $('span.read-more', el.parent());
$readMore.show();
}
function delayCollapse(option, $collapseEl) {
if (option.collapseTimer) {
delayedCollapse = setTimeout(function() {  
reCollapse($collapseEl);
option.onCollapse($collapseEl.parent(), false);
},
option.collapseTimer
);
}
}
function rSlash(rString) {
return rString.replace(/\//,'');
}    
};
$.fn.expander.defaults = {
slicePoint: 300,
widow: 10,
expandText: 'read more',
expandPrefix: '&hellip; ',
collapseTimer: 0,
expandEffect: 'fadeIn',
expandSpeed: '',
userCollapse: true,
userCollapseText: 'close',
userCollapsePrefix: '<br>',
beforeExpand: function($thisEl) {},
afterExpand: function($thisEl) {},
onCollapse: function($thisEl, byUser) {}
};
})(jQuery);
