<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#####
#  FCKeditor - The text editor for internet
#  Copyright (C) 2003-2006 Frederico Caldeira Knabben
#  
#  Licensed under the terms of the GNU Lesser General Public License:
#  		http://www.opensource.org/licenses/lgpl-license.php
#  
#  For further information visit:
#  		http://www.fckeditor.net/
#  
#  "Support Open Source software. What about a donation today?"
#  
#  File Name: fckeditor.pl
#  	This is the integration file for Perl.
#  
#  File Authors:
#  		Takashi Yamaguchi (jack@omakase.net)
#####

#my $InstanceName;
#my $BasePath;
#my $Width;
#my $Height;
#my $ToolbarSet;
#my $Value;
#my %Config;

sub FCKeditor
{

	local($instanceName) = @_;
	$InstanceName	= $instanceName;
	$BasePath		= '/fckeditor/';
	$Width			= '100%';
	$Height			= '200';
	$ToolbarSet		= 'Default';
	$Value			= '';
}

sub Create
{
	print &amp;CreateHtml();
}

sub specialchar_cnv
{

	local($ch) = @_;

	$ch =~ s/&amp;/&amp;amp;/g;		# &amp;
	$ch =~ s/\"/&amp;quot;/g;	#"
	$ch =~ s/\'/&amp;#39;/g;	# '
	$ch =~ s/&lt;/&amp;lt;/g;		# &lt;
	$ch =~ s/&gt;/&amp;gt;/g;		# &gt;
	return($ch);
}

sub CreateHtml
{

	$HtmlValue = &amp;specialchar_cnv($Value);
	$Html = '&lt;div&gt;' ;
	if(&amp;IsCompatible()) {
		$Link = $BasePath . "editor/fckeditor.html?InstanceName=$InstanceName";
		if($ToolbarSet ne '') {
			$Link .= "&amp;amp;Toolbar=$ToolbarSet";
		}
		#// Render the linked hidden field.
		$Html .= "&lt;input type=\"hidden\" id=\"$InstanceName\" name=\"$InstanceName\" value=\"$HtmlValue\" style=\"display:none\" /&gt;" ;

		#// Render the configurations hidden field.
		$cfgstr = &amp;GetConfigFieldString();
		$wk = $InstanceName."___Config";
		$Html .= "&lt;input type=\"hidden\" id=\"$wk\" value=\"$cfgstr\" style=\"display:none\" /&gt;" ;

		#// Render the editor IFRAME.
		$wk = $InstanceName."___Frame";
		$Html .= "&lt;iframe id=\"$wk\" src=\"$Link\" width=\"$Width\" height=\"$Height\" frameborder=\"0\" scrolling=\"no\"&gt;&lt;/iframe&gt;";
	} else {
		if($Width =~ /\%/g){
			$WidthCSS = $Width;
		} else {
			$WidthCSS = $Width . 'px';
		}
		if($Height =~ /\%/g){
			$HeightCSS = $Height;
		} else {
			$HeightCSS = $Height . 'px';
		}
		$Html .= "&lt;textarea name=\"$InstanceName\" rows=\"4\" cols=\"40\" style=\"width: $WidthCSS; height: $HeightCSS\"&gt;$HtmlValue&lt;/textarea&gt;";
	}
	$Html .= '&lt;/div&gt;';
	return($Html);
}

sub IsCompatible
{

	$sAgent = $ENV{'HTTP_USER_AGENT'};
	if(($sAgent =~ /MSIE/i) &amp;&amp; !($sAgent =~ /mac/i) &amp;&amp; !($sAgent =~ /Opera/i)) {
		$iVersion = substr($sAgent,index($sAgent,'MSIE') + 5,3);
		return($iVersion &gt;= 5.5) ;
	} elsif($sAgent =~ /Gecko\//i) {
		$iVersion = substr($sAgent,index($sAgent,'Gecko/') + 6,8);
		return($iVersion &gt;= 20030210) ;
	} else {
		return(0);		# 2.0 PR fix
	}
}

sub GetConfigFieldString
{
	$sParams = '';
	$bFirst = 0;
	foreach $sKey (keys %Config) {
		$sValue = $Config{$sKey};
		if($bFirst == 1) {
			$sParams .= '&amp;amp;';
		} else {
			$bFirst = 1;
		}
		$k = &amp;specialchar_cnv($sKey);
		$v = &amp;specialchar_cnv($sValue);
		if($sValue eq "true") {
			$sParams .= "$k=true";
		} elsif($sValue eq "false") {
			$sParams .= "$k=false";
		} else {
			$sParams .= "$k=$v";
		}
	}
	return($sParams);
}

1;
</pre></body></html>