﻿// common functions used across site


function elm(elmID) {
   return document.getElementById(elmID);
}

function shortenText(elmID, maxChars) {
   var longElm = elm(elmID);
   
   if (getInnerText(longElm).length > maxChars) {
      var shortElm = document.createElement('div');
      shortElm.ID = elmID + '_short';
      shortElm.style.marginTop = longElm.style.marginTop;
      shortElm.className = longElm.className;
      
      shortElm.innerHTML = longElm.innerHTML
      var charsRemoved = 0;
      while ( getInnerText(shortElm).length > maxChars || getInnerText(shortElm).charAt(getInnerText(shortElm).length - 1) != ' ' ) {
         charsRemoved++;
         shortElm.innerHTML = longElm.innerHTML.substring(0, longElm.innerHTML.length-charsRemoved);
      }
      
      shortElm.innerHTML = shortElm.innerHTML.substring(0, shortElm.innerHTML.length-1);
      shortElm.innerHTML += '... <a href="#" onclick="elm(\'' + elmID + '\').style.display=\'block\'; this.parentNode.style.display=\'none\'; return false;">read more</a>';
      
	   longElm.parentNode.insertBefore(shortElm, longElm);
	   longElm.style.display = 'none';  
	   shortElm.style.display = 'block';
	}
}

function getInnerText (obj) {
   return (obj.innerText) ? obj.innerText : (obj.textContent) ? obj.textContent : "";
} 

function toggleShortened(elmID) {
   var longElm = elm(elmID);
   var shortElm = elm(elmID + '_short');
   if (longElm.style.display = 'none') {
      longElm.style.display = 'block';
      shortElm.style.display = 'none';
   }
   else {
      longElm.style.display = 'none';
      shortElm.style.display = 'block';
   }
}

// check for elements with class "contentBox"
// add divs to complete box ("left_bg", "bg" classes inside "contentBox",
// "contentBoxEnd" class after element with empty div inside)

function insertBoxes() {
	var divs = elm('allContent').getElementsByTagName('div');
	var rounded_divs = [];
	for (var i = 0; i < divs.length; i++) {
		if ( /\bcontentBox\b/.exec(divs[i].className) ) {
			rounded_divs[rounded_divs.length] = divs[i];
		}
	}
	for (var i = 0; i < rounded_divs.length; i++) {
	   var boxDiv = rounded_divs[i];
	   var origContents = boxDiv.innerHTML;
	   boxDiv.innerHTML = '';
	   var left_bg = document.createElement('div');
	   left_bg.className = 'left_bg';
	   var bg = document.createElement('div');
	   bg.className = 'bg';
	   bg.innerHTML = origContents;
	   var boxEnd = document.createElement('div');
	   boxEnd.className = 'contentBoxEnd';	   
	   boxEnd.appendChild(document.createElement('div'));
	   
	   left_bg.appendChild(bg);
	   boxDiv.appendChild(left_bg);
	   boxDiv.parentNode.insertBefore( boxEnd, boxDiv.nextSibling );
	   
	}
}

function loadExternalScript(url) {
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
}

