// Fix HTML for ReadSpeaker.
function fixHTMLForReadSpeaker(sHTML)
{
    var sReadText = '';
    
    var arStartBlocks = sHTML.split('<!-- RSPEAK_START -->');
    
    if (arStartBlocks.length > 1)
    {
        var sReadHTML = '';
        
        // Eerste start-block niet meenemen (lezen).
        for (var i = 1; i < arStartBlocks.length; i++)
        {
            var sStartBlock = arStartBlocks[i];
            var iStopPosition = sStartBlock.indexOf('<!-- RSPEAK_STOP -->');
            
            // Hele start-block en anders tot end-block meenemen (lezen).
            sReadHTML += ((iStopPosition == -1) ? sStartBlock : sStartBlock.substring(0, iStopPosition));
        }
        
        // Strip (HTML) tags.
        sReadText = sReadHTML.replace(/(<([^>]+)>)/gim, ' ');
		
		// dubbele whitespaces en enters er uit
		sReadText = sReadText.replace(/ {2,}/g,' ').replace(/[\n\r]*/g,'');

		// &nbsp; naar spaties
        sReadText = sReadText.replace(/&nbsp;/g, ' ');
		sReadText = sReadText.replace(/&amp;/g, '&')
    }
    
    return sReadText;
}

function IsDebug()
{
	return (typeof(document.rs_form) != "undefined" && document.rs_form != null &&
		typeof(document.rs_form.test_area) != "undefined" && document.rs_form.test_area != null);
}

function WriteToDebugArea(text)
{
    if (typeof(document.rs_form) != "undefined" && document.rs_form != null &&
		typeof(document.rs_form.test_area) != "undefined" && document.rs_form.test_area != null)
	{
		document.rs_form.test_area.value = text;
		alert(document.rs_form.selectedtext.value);
	}
}

// Fill text to read.
function fillTextToRead()
{
	var html = fixHTMLForReadSpeaker(document.body.innerHTML);
	document.rs_form.selectedtext.value = html;

	WriteToDebugArea(document.rs_form.selectedtext.value);
}

function rsTextSelection()
{
    if (document.getSelection) // older Mozilla versions
    {
        var selectedString = document.getSelection();
    }
    else if (document.all) // MSIE 4+
    {
        var selectedString = document.selection.createRange().text;
    }
    else if (window.getSelection) // recent Mozilla versions
    {
        var selectedString = window.getSelection();
    }
    
    document.rs_form.selectedtext.value = selectedString;
    
	if (!IsDebug())
	{
	    if (document.rs_form.url)
	    {
	        if (!document.rs_form.url.value)
	        {
	            if (window.location.href)
	            {
	                document.rs_form.url.value = window.location.href;
	            }
	            else if (document.location.href)
	            {
	                document.rs_form.url.value = document.location.href;
	            }
	        }
	    }
	}
}

function rsCopySelected()
{
    setTimeout("rsTextSelection()", 50);
    return true;
}

function rsOpenAndRead()
{
    fillTextToRead();
    
    window.open('', 'rs', 'width=380,height=180,toolbar=0');
    setTimeout("document.rs_form.submit();", 500);
}

document.onmouseup = rsCopySelected;
document.onkeyup = rsCopySelected;