Skip to content
fckeditor.popup.html 3.36 KiB
Newer Older
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>FCKeditor</title>
	<script type="text/javascript">
document.write('<scr' + 'ipt src="' + window.opener['Drupal'].settings.basePath + 'misc/jquery.js"></scr' + 'ipt>');

// #### URLParams: holds all URL passed parameters (like ?Param1=Value1&Param2=Value2)
var FCKURLParams = new Object() ;

var aParams = document.location.search.substr(1).split('&') ;
for ( var i = 0 ; i < aParams.length ; i++ )
{
	var aParam = aParams[i].split('=') ;
	var sParamName  = aParam[0] ;
	var sParamValue = aParam[1] ;

	FCKURLParams[ sParamName ] = sParamValue ;
}

// It is preferable to have the oFCKeditor object defined in the opener window,
// so all the configurations will be there. In this way the popup doesn't need
// to take care of the configurations "clonning".
var oFCKeditor = window.opener[ FCKURLParams[ 'var' ] ] ;
oFCKeditor.Width	= '100%' ;
oFCKeditor.Height	= '100%' ;
oFCKeditor.Value	= window.opener.document.getElementById( FCKURLParams[ 'el' ] ).value ;

function Ok()
{
	var oEditor = FCKeditorAPI.GetInstance( oFCKeditor.InstanceName ) ;

	window.opener.document.getElementById( FCKURLParams[ 'el' ] ).value = oEditor.GetXHTML( true ) ;		// "true" means you want it formatted.

	window.opener.focus() ;
	window.close() ;
}

function Cancel()
{
	var oEditor = FCKeditorAPI.GetInstance( oFCKeditor.InstanceName ) ;
	
	if ( oEditor.IsDirty() )
	{
		if ( !confirm( 'Are you sure you want to cancel? Your changes will be lost.' ) )
			return ;
	}

	window.close() ;
}

function FCKeditor_OnComplete( editorInstance )
{
  oEditor = editorInstance;
  var textarea = window.opener.document.getElementById( FCKURLParams[ 'el' ] );
  if ($(textarea).attr('class').indexOf("filterxss2") != -1) {
    $.post(window.opener['Drupal'].settings.basePath + 'fckeditor/xss', {
      text: oFCKeditor.Value,
      'filters[]': window.opener['Drupal'].settings.fckeditor_filters[FCKURLParams[ 'var' ]]
      }, 
      function(text) {
        oEditor.SetData(text);
      }
    );
  }
}

	</script>
</head>
<body>
	<table width="100%" height="100%">
		<tr>
			<td height="100%">
				<script type="text/javascript">
//image_assist integration
IaObj = window.opener.document.getElementById( 'img_assist-link-' + FCKURLParams[ 'el' ] );
if(IaObj){
	IaObj.href = IaObj.href.replace("/load/textarea", "/load/fckeditor");
	document.write( '<a className="img_assist-link" href='+ IaObj.href +' id="img_assist-link-' + FCKURLParams[ 'el' ] +'" style="display:none" /></a>' ) ;
}
var textarea = window.opener.document.getElementById( FCKURLParams[ 'el' ] );
if ($(textarea).attr('class').indexOf("filterxss2") != -1) {
  var initialHTML = '';
}
else {
  var initialHTML = oFCKeditor.Value;
}
// For now, it is not possible to retrieve the output HTML, so we must do it by
// hand. Future implementations of FCKeditor could bring a
// oFCKeditor.CreateHtml() function.
document.write( '<input type="hidden" id="' + oFCKeditor.InstanceName + '" name="' + oFCKeditor.InstanceName + '" value="' + oFCKeditor._HTMLEncode( initialHTML ) + '" style="display:none" />' ) ;
document.write( oFCKeditor._GetConfigHtml() ) ;
document.write( oFCKeditor._GetIFrameHtml() ) ;

				</script>
			</td>
		</tr>
		<tr>
			<td>
				<input type="button" value="Ok" onclick="Ok();" style="width:120px" />
				<input type="button" value="Cancel" onclick="Cancel();" />
			</td>
		</tr>
	</table>
</body>
</html>