package WebGUI::Macro::EditableToggle;

#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2006 Plain Black Corporation.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------

use strict;
use WebGUI::International;
use WebGUI::Asset::Template;

=head1 NAME

Package WebGUI::Macro::EditableToggle

=head1 DESCRIPTION

Macro for displaying a url to the user for turning Admin mode on and off if they
have editing rights to the current Asset.

=head2 process ( [turnOn,turnOff,template ] )

process takes three optional parameters for customizing the content and layout
of the account link.

=head3 turnOn

The text displayed to the user if Admin mode is turned off, they are in the
Turn On Admin group and they have editing rights to this Asset.
If this is blank an internationalized default is used.

=head3 turnOff

The text displayed to the user if Admin mode is turned on, they are in
the Turn On Admin group and they have editing rights to this Asset..
If this is blank an internationalized default is used.

=head3 template

A template from the Macro/EditableToggle namespace to use for formatting the link.

=cut

#-------------------------------------------------------------------
sub process {
	my $session = shift;
         if ($session->asset && $session->asset->canEdit && $session->user->isInGroup(12)) {
        	my %var;
              my @param = @_;
	      my $i18n = WebGUI::International->new($session,'Macro_EditableToggle');
              my $turnOn = $param[0] || $i18n->get(516);
              my $turnOff = $param[1] || $i18n->get(517);
                 if ($session->var->get("adminOn")) {
                      $var{'toggle.url'} = $session->url->page('op=switchOffAdmin');
                      $var{'toggle.text'} = $turnOff;
                 } else {
                      $var{'toggle.url'} = $session->url->page('op=switchOnAdmin');
                      $var{'toggle.text'} = $turnOn;
                 }
		if ($param[2]) {
         		return  WebGUI::Asset::Template->newByUrl($session,$param[2])->process(\%var);
		} else {
         		return  WebGUI::Asset::Template->new($session,"PBtmpl0000000000000038")->process(\%var);
                }
       }
       return "";
}

1;


