/*************************************************
	SELECT ALL AND COPY CODE FUNCTIONS v1.0
			     By Karl Benson
**************************************************/
function selectall(codeElement)
{
	deselectall();
	if (document.selection)
	{
		// IE
		var range = document.body.createTextRange();
		range.moveToElementText(document.getElementById(codeElement));
		range.select();
	}
	else if (window.getSelection) 
	{
		// FIREFOX & IE MAC & OTHERS
		var range = document.createRange();
		range.selectNode(document.getElementById(codeElement));
		window.getSelection().addRange(range);
	}
	else if(document.createRange && (document.getSelection || window.getSelection) )
	{
		// FIREFOX
		range = document.createRange();
		range.selectNodeContents(document.getElementById(codeElement));
		s = window.getSelection ? window.getSelection() : document.getSelection();
		s.removeAllRanges();
		s.addRange(range);
	}
	else
	{
		// OPERA DON'T DO SELECTION :(
		// AND SOME OTHER BROWSERS MIGHT NOT EITHER, WE DON'T HAVE A SOLUTION FOR THEM YET.
	}
}

function deselectall()
{
	
	if (document.selection)
	{
		// IE
		document.selection.empty();
	}
	else if (window.getSelection)
	{
		// FIREFOX & OTHERS
		window.getSelection().removeAllRanges();
	}
}

function copy(codeElement) {

	// WE SHOULD DESELECT ANY CURRENT SELECTIONS
	// BUT THIS BREAKS OPERA COPYING TO CLIPBOARD, SO DISABLED ATM :(
	/*
	deselectall();
	*/
	
	// CREATE AN ELEMENT TO CONTAIN OUR COPYING FLASH ELEMENT
	if(!document.getElementById('clipboard')) {
		var copydiv = document.createElement('div');
		copydiv.id = 'clipboard';
		document.body.appendChild(copydiv);
	}
	// CLEAR OUR ELEMENT READY FOR NEW STUFF TO COPY
	document.getElementById('clipboard').innerHTML = '';
	// INPUT = THE STUFF IN THE CODE TAG
	var input = document.getElementById(codeElement).innerHTML 
	// REPLACE ACTIVE LINE BREAKS WITH CARRIAGE RETURNS
	input = input.replace(/<(BR\/|br\/|BR \/|br \/|br|BR)>/g, "\r\n");
	// REMOVE ACTIVE HTML (PART OF SMF)
	input = input.replace(/<\/?[^>]+(>|$)/g, "");
	// NOW DECODE OUR CONTENT  (WHICH MAYBE HTML ITSELF) (added by the user)
	var output = input.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&nbsp;/g," ").replace(/&amp;/g, '&').replace(/&quot;/g, '"');
	// USING A FLASH FILE TO COPY TO CLIPBOARD
	document.getElementById('clipboard').innerHTML = '<embed src="_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(output)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
}
/**************************************************/

