/*



This script was created by Ian Lloyd (http://lloydi.com/). I'd appreciate it 

if you could keep this comment in the script if you choose to use it (albeit 

in an amended form.



The original blog entry relating to this can be found here: http://tinyurl.com/p9tqb.



The addEvent function comes courtesy of Scott Andrew: http://tinyurl.com/qcmrd



*/

function addEvent(elm, evType, fn, useCapture)

{

		if(elm.addEventListener)

		{

			elm.addEventListener(evType, fn, useCapture);

			return true;

		}

		else if (elm.attachEvent)

		{

			var r = elm.attachEvent('on' + evType, fn);

			return r;

		}

		else

		{

			elm['on' + evType] = fn;

		}

}



function addPrintLinks()

{

var el = document.getElementsByTagName("div");

for (i=0;i<el.length;i++)

	{

	if (el[i].className=="print_section")

		{

		var newLink = document.createElement("a");

		var newLink2 = document.createElement("a");

		var newLinkText = document.createTextNode("print this section only   |");

		var newLinkText2 = document.createTextNode("   print the whole page");



		var newLinkPara = document.createElement("p");

		newLinkPara.setAttribute("class","printbutton");

		

		//set up the 'print this section' link

		newLink.setAttribute("href","#");

		var btId = "printbut_" + el[i].id;

		newLink.setAttribute("id",btId);

		newLink.appendChild(newLinkText);

		newLink.setAttribute("href","#");

		newLinkPara.appendChild(newLink);

		

		//set up the print all link

		newLink2.setAttribute("href","#");

		var bt2Id = "printall_" + el[i].id;

		newLink2.setAttribute("id",bt2Id);

		newLink2.appendChild(newLinkText2);

		newLink2.setAttribute("href","#");

		newLinkPara.appendChild(newLink2);



		//add the behaviours for the new links

		newLink.onclick = togglePrintDisplay;

		newLink.onkeypress = togglePrintDisplay;

		newLink2.onclick = printAll;

		newLink2.onkeypress = printAll;



		//insert the para and the two links into the DOM

		el[i].appendChild(newLinkPara);

		

		}

	}

}



function togglePrintDisplay(e)

{

var whatSection = this.id.split("_");

whatSection = whatSection[1];

var el = document.getElementsByTagName("div");

for (i=0;i<el.length;i++)

	{

	if (el[i].className.indexOf("section")!=-1)

		{

		el[i].removeAttribute("className");

		if (el[i].id==whatSection)

			{

			//show only this section for print

			el[i].setAttribute("className","print_section print");

			el[i].setAttribute("class","print_section print");

			}

		else

			{

			//hide the sections from print-out

			el[i].setAttribute("className","print_section noprint");

			el[i].setAttribute("class","print_section noprint");

			}

		}

	}



if (window.event) 

	{

	window.event.returnValue = false;

	window.event.cancelBubble = true;

	} 

else if (e) 

	{

	e.stopPropagation();

	e.preventDefault();

	}



window.print();

}



function printAll(e)

{

var el = document.getElementsByTagName("div");

for (i=0;i<el.length;i++)

	{

	if (el[i].className.indexOf("print_section")!=-1)

		{

		el[i].setAttribute("className","print_section print");

		el[i].setAttribute("class","print_section print");

		}

	}

if (window.event) 

	{

	window.event.returnValue = false;

	window.event.cancelBubble = true;

	} 

else if (e) 

	{

	e.stopPropagation();

	e.preventDefault();

	}

window.print();

}

addEvent(window, 'load', addPrintLinks, false);

