crsp = (typeof crsp == "object") ? crsp : new Object();
crsp.readMore = {
	sReadMoreButton : '<input type="button" class="button more" value="Read More" />',
	sReadLessButton : '<input type="button" class="button less" value="Read Less" />',
	iTruncateAfter : 1,
	iTruncateTo : 1,
	convertArea : function(i) {
		var oContainer = jQuery(this);
		var oTextContainer = oContainer.find(".crsReadMoreText");
		if (!oTextContainer.length) {oTextContainer = oContainer;}
		var sText = oTextContainer.text();
		if (sText.length > crsp.readMore.iTruncateAfter) {
			oTextContainer.text('');
			var sShort = sText.slice(0, crsp.readMore.iTruncateTo - 1);
			var sNewHTML = '<span class="text part swap">' + sShort + '...</span>';
			sNewHTML += '<span class="hidden text whole swap">' + sText + '</span>';
			oTextContainer.append(sNewHTML);

			var oButtonContainer = oContainer.find(".crsReadMoreControls");
			var bCloseSpan = sNewHTML = '';
			if (!oButtonContainer.length) {
				oButtonContainer = oContainer;
				sNewHTML = '<span class="buttons">';
				bCloseSpan = true;
			}
			if (!oButtonContainer.find(".more").length) {sNewHTML += crsp.readMore.sReadMoreButton;}
			if (!oButtonContainer.find(".less").length) {sNewHTML += crsp.readMore.sReadLessButton;}
			if (bCloseSpan) {sNewHTML += '</span>';}
			if (sNewHTML) {oButtonContainer.append(sNewHTML);}

			oContainer.addClass("swapArea");
			var oMore = oContainer.find(".more");
			oMore.addClass("swap");
			oMore.click(crsp.elementSwapper.swap);
			var oLess = oContainer.find(".less");
			oLess.addClass("swap");
			oLess.click(crsp.elementSwapper.swap);
			oLess.addClass("hidden");
		}
	},
	init : function() {
		if (typeof crsp.elementSwapper != "object") {
			alert("Warning: crsp.readMore requires crsp.oElementSwapper");
			return;
		}
		var oMoreButton = jQuery("#crsReadMoreButton");
		if (oMoreButton.length) {
			crsp.readMore.sReadMoreButton = oMoreButton.html();
			// oMoreButton.remove();
		}
		var oLessButton = jQuery("#crsReadLessButton");
		if (oLessButton.length) {
			crsp.readMore.sReadLessButton = oLessButton.html();
			// oLessButton.remove();
		}
		var oAreas = jQuery(".crsReadMoreArea");
		oAreas.each(crsp.readMore.convertArea);
	}
};

jQuery(document).ready(crsp.readMore.init);
