function selectCode(a)
{
	// Get ID of code block
	if(a.parentNode.parentNode.getElementsByTagName('DIV').length==1)
	{
		var e = a.parentNode.parentNode.parentNode.getElementsByTagName('DIV')[2];
	}
	else
	{
		var e = a.parentNode.parentNode.getElementsByTagName('DIV')[1];
	}
	
	// Not IE
	if (window.getSelection)
	{
		var s = window.getSelection();
		// Safari
		if (s.setBaseAndExtent)
		{
			s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
		}
		// Firefox and Opera
		else
		{
			var r = document.createRange();
			r.selectNodeContents(e);
			s.removeAllRanges();
			s.addRange(r);
		}
	}
	// Some older browsers
	else if (document.getSelection)
	{
		var s = document.getSelection();
		var r = document.createRange();
		r.selectNodeContents(e);
		s.removeAllRanges();
		s.addRange(r);
	}
	    // IE
    else if (document.selection)
    {
        var r = document.body.createTextRange();
        r.moveToElementText(e.childNodes[0]);
        r.select();
    }
}

function linenumberOnOff(id){
	var parent = document.getElementById(id);
	var holder = parent.parentNode;
	var a = holder.parentNode.getElementsByTagName('A')[0];
    
	if (parent.firstChild.nodeName == "OL"){
		var show = 'hide';
		a.innerHTML = 'LINE NUMBER ON';
	} else if (parent.firstChild.nodeName == "DIV"){
		var show = 'show';
		a.innerHTML = 'LINE NUMBER OFF';
	}

	if (show == 'hide'){
		var child = parent.getElementsByTagName("ol");

		var children = child[0].childNodes;

		var replacement = document.createElement("div");
		replacement.setAttribute("id", id);
		replacement.setAttribute("class", parent.getAttribute("class"));
		replacement.setAttribute("className", parent.getAttribute("className"));
		replacement.setAttribute("style", parent.getAttribute("style"));
		
		for (var b = 0; b <= children.length - 1; b++){
			if (children[b].nodeType == 1){
				var row = document.createElement("div");

				row.setAttribute("class", children[b].getAttribute("class"));
				row.setAttribute("className", children[b].getAttribute("className"));
				row.setAttribute("style", children[b].getAttribute("style") + "; border-left: none;");
				row.style.cssText = 'border-left: none;';

				var rowdata = children[b].childNodes;

				for (var c = 0; c <= rowdata.length - 1; c++){
					row.appendChild(rowdata[c].cloneNode(true));
				}

				replacement.appendChild(row);
			}
		}
		
		holder.replaceChild(replacement, parent);
	} else {
		var replacement = document.createElement("div");
		replacement.setAttribute("id", id);
		replacement.setAttribute("class", parent.getAttribute("class"));
		replacement.setAttribute("className", parent.getAttribute("className"));
		replacement.setAttribute("style", parent.getAttribute("style"));

		var list = document.createElement("ol");

		var dds = parent.getElementsByTagName("div");

		for (var b = 0; b <= dds.length -1; b++){
			var row = document.createElement("li");
			row.setAttribute("class", dds[b].getAttribute("class"));
			row.setAttribute("className", dds[b].getAttribute("className"));
			row.setAttribute("style", dds[b].getAttribute('style') + "; border-left: 1px solid #999;");

			var rowdata = dds[b].childNodes;

			for (var c = 0; c <= rowdata.length - 1; c++){
				row.appendChild(rowdata[c].cloneNode(true));
			}

			list.appendChild(row);
		}

		replacement.appendChild(list);
		holder.replaceChild(replacement, parent);
	}
}

function expandCode(id,id2){
	var parent = document.getElementById(id);
    var parent2 = document.getElementById(id2);
    var a = parent.parentNode.parentNode.getElementsByTagName('A')[1];
    
	if (parent.style.display === 'block' || parent.style.display === ''){
		parent.style.display = 'none';
		parent2.style.display = 'block';
		parent2.innerHTML = 'Code is Hidden, <a onclick="expandCode(\'' + id + '\',\'' + id2 + '\'); return false;" href="#">SHOW</a>';
		a.innerHTML = 'SHOW';
	} else {
		parent.style.display = 'block';
		parent2.style.display = 'none';
		parent2.textContent = '';
		parent2.innerHTML = '';
		a.innerHTML = 'HIDE';
	}
}