/**
 * @author wouter
 */
/* The selected text function */

var selectedString="";

function getSelectedHTML() {
  selectedString="";
  var rng=undefined;
  if (window.getSelection) {
    selobj = window.getSelection();
    if (!selobj.isCollapsed) {
      if (selobj.getRangeAt) {
        rng=selobj.getRangeAt(0);
      }
      else {
        rng = document.createRange();
        rng.setStart(selobj.anchorNode,selobj.anchorOffset);
        rng.setEnd(selobj.focusNode,selobj.focusOffset);
      }
      if (rng) {
        DOM = rng.cloneContents();
        object = document.createElement('div');
        object.appendChild(DOM.cloneNode(true));
        selectedString=object.innerHTML;
      }
      else {
        selectedString=selobj;
      }
    }
  }
  else if (document.selection) {
    selobj = document.selection;
    rng = selobj.createRange();
    if (rng && rng.htmlText) {
      selectedString = rng.htmlText;
    }
    else if (rng && rng.text) {
      selectedString = rng.text;
    }
  }
  else if (document.getSelection) {
    selectedString=document.getSelection();
  }
  	selectedString = cleanSelectedString(selectedString);
}

function copyselected()
{
  setTimeout("getSelectedHTML()",50);
  return true;
}

document.onmouseup = copyselected;
document.onkeyup = copyselected;

/* The expanding function */

function readspeaker(rs_call, div)
{
  $('#'+ div).show();	
  if (selectedString.length>0) {
    rs_call=rs_call.replace("/cgi-bin/rsent?","/enterprise/rsent_wrapper.php?");
  }
  //savelink=rs_call+"&save=1";
  if(div == "rs_div"){
  	rs_embed = "<object type='application/x-shockwave-flash' data='http://media.readspeaker.com/flash/readspeaker20.swf?mp3=" + escape(rs_call) + "&amp;autoplay=1&amp;rskin=simple&amp;ricon=0&amp;c1=0x00ABE6&amp;c2=0xFFFFFF&amp;c3=0x2C3939&amp;c5=0xFFFFFF&amp;c6=0xF3F3F3&amp;c7=0x00ABE6&amp;c10=0x00ABE6&amp;rvolume=0&amp;tips=0' height='25' width='200'><param name='movie' value='http://media.readspeaker.com/flash/readspeaker20.swf?mp3=" + escape(rs_call) + "&amp;autoplay=1&amp;rskin=simple&amp;ricon=0&amp;c1=0x00ABE6&amp;c2=0xFFFFFF&amp;c3=0x2C3939&amp;c5=0xFFFFFF&amp;c6=0xF3F3F3&amp;c7=0x00ABE6&amp;c10=0x00ABE6&amp;rvolume=0&amp;tips=0' /><param name='quality' value='high' /><param name='SCALE' value='exactfit' /><param name='wmode' value='transparent' /><embed wmode='transparent' src='http://media.readspeaker.com/flash/readspeaker20.swf?mp3=" + escape(rs_call) + "&autoplay=1&rskin=bump' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwaveflash' scale='exactfit' height='20' width='250' /></embed></object>";
    close_rs="<a class='close' href='#' onclick='close_rs_div(\"" + div + "\"); return false;'><img src='fileadmin/templates/leek/img/close.png' alt='Sluiten' /></a>   ";

  }
  else{
  	rs_embed = "<object type='application/x-shockwave-flash' data='http://media.readspeaker.com/flash/readspeaker20.swf?mp3=" + escape(rs_call) + "&autoplay=1&rskin=simple&ricon=0&c1=0xcbdc8e&c2=0xFFFFFF&c3=0x2C3939&c5=0xFFFFFF&c6=0xEDF3D9&c7=0x00ABE6&c10=0x96bf0d&c11=0xcbdc8e&c13=0xEDF3D9&rvolume=0&tips=0' height='25' width='200'><param name='movie' value='http://media.readspeaker.com/flash/readspeaker20.swf?mp3=" + escape(rs_call) + "&autoplay=1&rskin=simple&ricon=0&c1=0xcbdc8e&c2=0xFFFFFF&c3=0x2C3939&c5=0xFFFFFF&c6=0xEDF3D9&c7=0x00ABE6&c10=0x96bf0d&c11=0xcbdc8e&c13=0xEDF3D9&rvolume=0&tips=0' /><param name='quality' value='high' /><param name='SCALE' value='exactfit' /><param name='wmode' value='transparent' /><embed wmode='transparent' src='http://media.readspeaker.com/flash/readspeaker20.swf?mp3=" + escape(rs_call) + "&autoplay=1&rskin=bump' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwaveflash' scale='exactfit' height='20' width='250' /></embed></object>";
    close_rs="<a class='close' href='#' onclick='close_rs_div(\"" + div + "\"); return false;'><img src='fileadmin/templates/leek/img/close_green.png' alt='Sluiten' /></a>   ";
  }
  //rs_downloadlink="<br />Speech-enabled by <a href='http://www.readspeaker.com'>ReadSpeaker</a><br /><a href='"+savelink+"'>Download audio</a>";

  var x=document.getElementById(div);

  x.innerHTML=rs_embed+close_rs;
}

function close_rs_div(div)
{
  $('#'+ div).hide();
  var x=document.getElementById(div);
  x.innerHTML="";
}

/* Selected text cleaning function */

function cleanSelectedString(theString)
{
	var comments = theString.match(/<!--/gi);
	var temp = "";
	if(comments != undefined)
	{
		for(i=0;i<comments.length;i++)
		{
			var temp = theString.substring(theString.search(/<!--/gi),theString.search(/-->/gi)+3);
			theString = theString.replace(temp,"");
		}
	}
	var regexp = /(<\/?[A-Z]+[0-9]?)\s?[^>]*>/gi
	theString = theString.replace(regexp, "$1>");
	var regexp2 = /<\/?[A-Z]+[0-9]?\s?>/gi
	theString = theString.replace(regexp2, function(m) { return returnTags(m);});
	var regexp_spaces = /\s+?\s*/gi
	theString = theString.replace(regexp_spaces, " ");	
	var regexp_br = /(<br>)+?\s?(<br>\s*)*/gi
	theString = theString.replace(regexp_br, "<br>");	
	return theString;
}

function returnTags(thematch)
{ 
	var regtag = /<\/?(h[1-6]|a|area|ul|ol|dl|dd|dt|li|table|td|tr|th|p|hr|br)>/i
	if(regtag.test(thematch))
	{ 
		return thematch;
	} 
	else 
	{
		return "";
	}
}
