#!/usr/bin/perl

BEGIN {
    my $b__dir = (-d '/home/loyaltyh/perl'?'/home/loyaltyh/perl':( getpwuid($>) )[7].'/perl');
    unshift @INC,$b__dir.'5/lib/perl5',$b__dir.'5/lib/perl5/x86_64-linux-thread-multi',map { $b__dir . $_ } @INC;
}




###############################################
### copyright 2004-2012  
### John Jan Popovic, http://1stmuse.com
###        
###     
###############################################

use CGI qw (:standard);
use CGI::Carp qw(fatalsToBrowser);
# use utf8; # it can disturb letters čćžšđ
###############################################
###  Set Configurations Below
###############################################

# $root_ = "/data/20/1/128/63/1943063/user/2120061/htdocs";
$root_ = "$ENV{'DOCUMENT_ROOT'}";
$script_name = $ENV{'SCRIPT_NAME'};	 # This script name
$folder_ = "adonis";
$server = "http://loyalty.hr";
$web_site = "http://loyalty.hr/";
$image_path = "$server/$folder_";
### Specify database ADONIS fields in the array below 
@fields = 
(
"RECORD_ID",
"ITEM_number",

"TAXONOMY_page_title", # synonyms: Title, Article Name
"TAXONOMY_subtitle",
"TAXONOMY_cathegory",
"TAXONOMY_filesystem_path",
"TAXONOMY_metacathegory", # TAXONOMY_metacathegory is a chief cathegory of TAXONOMY_cathegories and TAXONOMY_cathegory
"TAXONOMY_cathegories", # TAXONOMY_cathegory must be in the list, and TAXONOMY_cathegories list are subcathegories of TAXONOMY_metacathegory
"TAXONOMY_subcathegories", # TAXONOMY_cathegory is a Metacathegory for the TAXONOMY_subcathegories list

"PAGE_content",
"PAGE_notes",
"PAGE_URL",

"ICONOGRAFIA_file_web",
"ICONOGRAFIA_gallery",


"Data_Ora",
"rendering_mode",
"header_type",
"TAXONOMY_breadcrumbs"
);






### Set URL and email fields to be hyperlinks 
### The number used corresponds to its placement in the array above 
	 
$homedir = $root_;


$copyright_note= "<center><p>All rights reserved. <a href=\"http://www.1stmuse.com\">1stMuse</a><br>\&copy\; MMX 1stMuse \&copy\; MMX JJP<br><br></center>";

$database = "$root_/$folder_/adonis_.txt";	# DBASE name and path


### 

$db_name = "ADONIS ... Constellation Systems / 1stMuse";	 # The database name
$table_width = "90%";		 # The display width of the entire table
$record_width = "80%";			 # The display width of the database records
$max_rows_returned = "50";	 	 # Max number of rows displayed per page
$filter_html_tags = "no";		 # Removes HTML tags from record entries
$user_file = "$root_/adonis_users.txt";			 # User file name and path
$check_user_duplicates = "yes";		 # Checks for duplicate user names in user file
@extra_user_fields = ("Email");	 # Additional info needed when registering users
$use_external_html = "no";		 # Set to "yes" to use your own html template
$external_html_header = "header.html"; # File name and path to html template header
$external_html_footer = "footer.html";	 # File name and path to html template footer
$authenticate = "yes";			 # Prompts users for a user name and password
$register	= "no";		 # Allows new user registration
$record_ownership = "yes";		 # Users can modify/delete only their records
$admin_user_name = "admin";		 # This is the default Administrator user name
$default_user_permission_search = "yes"; # Gives newly registered users Search permission
$default_user_permission_add = "yes";	 # Gives newly registered users Add permission
$default_user_permission_modify = "no"; # Gives newly registered users Modify permission
$default_user_permission_delete = "no"; # Gives newly registered users Delete permission
$defult_search_index = "0";


###############################################
### Change Nothing Below This Line  
###############################################

############## Global Viariables ##################
$q = new CGI;
$field_count = @fields;
$colspan = $field_count+1;
$EXCLUSIVE = 2;
$UNLOCK = 8;
$user = $q->param(user);
$user = $q->cookie(user) if($user eq "");
$user_search = $q->param(user_search);
$user_search = "yes" if($authenticate eq "no");
$user_add = $q->param(user_add);
$user_add = "yes" if($authenticate eq "no");
$user_trans = $q->param(user_trans);
$user_trans = "yes" if($authenticate eq "no");
$user_modify = $q->param(user_modify);
$user_modify = "yes" if($authenticate eq "no");
$user_delete = $q->param(user_delete);
$user_delete = "yes" if($authenticate eq "no");
$selected_user = $q->param(selected_user);
$admin_add = $q->param(admin_add);
$sort = $q->param(sort_on);
$search_for = $q->param(search_for);
$ITEM_type = $q->param(ITEM_type);
$PAGE_URL = $q->param(PAGE_URL);
$s_gtotal =$q->param(s_gtotal);
$search_field = $q->param(search_field);
$action = $q->param(action);
$display = $q->param(display);
@keys = $q->param(key);
$key = $q->param(key);
$file_name_convention = $q->param(file_name_convention);
$myfile = $q->param(myfile);
$key_matches = @keys;

$update_mode = $q->param(update_mode);
$update_mode = "conserve" if($update_mode eq "");

$archive_mode = $q->param(archive_mode);
$archive_mode = "principale" if($archive_mode eq "");

$rendering_COMPLEX = $q->param(rendering_mode);
$rendering_COMPLEX .="~";
($rendering_mode,$disqus_mode,@altro ) =split(/\~/,$rendering_COMPLEX);
$rendering_mode = "classic" if($rendering_mode eq "");

$disqus_mode = "present" if($disqus_mode eq "present");
$disqus_mode = "absent" if($disqus_mode eq "");

$header_type = $q->param(header_type);
$header_type = "classic" if($header_type eq "");

$search_field = "all" if($search_field eq "");
$search_for = '.' if ($search_for eq "");
$action = $q->param(which_search) if($action =~ /^View/i);

$upload_1x_URL ="./$script_name?operation=upload_1x";
$upload_1y_URL ="./$script_name?operation=upload_1y";
$upload_y_URL ="./upload_adonis.cgi";
################# Main Logic ##################
if($q->param('operation') eq 'ADONIS') { $action='ADONIS'};
if($q->param('operation') eq 'logout') { $action='logout'};
if($q->param('operation') eq 'main_menu') { $action='Main Menu'};

if($action =~ /add administrator/i){ &add_user; exit;}
if ($authenticate eq "yes"){ unless (-e $user_file){ $title="Set Administrative Password"; &create_admin; } }
if($register eq "yes" && $action =~ /register/i){ &register; exit;}
if($action =~ /add user/i){ &add_user; exit;}
if($action =~ /submit login/i){ &authenticate; exit;}
if ($authenticate eq "yes" && $user eq ""){ &login; exit;}
if($action =~ /logout/i){ &logout; exit;}

if($authenticate eq "yes"){
	if($q->param('operation') eq 'search')
	 { 
	 $action='search';
	 my $buffer;
	 my $id = 0;
	 my $filter_ = $q->param('filter_');
	 my $find_ = $q->param('find_');
	 my $id_ = $q->param('id_');
	 my $user_ = $q->param('user_');
	 $search_for = $find_;
	 $user=$user_;
	 $id = 12345;
	}
	
	
	
## To perform search NADJI, click here:
## http://localhost/cgi-bin/adonis.cgi?operation=nadji&find_=1938


	if($q->param('operation') eq 'nadji')
	{ 
	 $action='nadji';
	 my $buffer;
	 my $find_ = $q->param('find_');
	 
 $search_for = $find_;
 $search_field="all";
	}

	
	
	
## http://localhost/cgi-bin/adonis.cgi?operation=edit_record&find_=$record_key


	if($q->param('operation') eq 'edit_record')	{ 
	 $action='modifica_item'; 
	 my $buffer;
	 $key = $q->param('find_');

	}
	
	
	if($q->param('operation') eq 'main_menu')
	 { 
	 $action='main_menu';
	 my $buffer;
	 my $user_ = $q->param('user_');
	 $search_for = $find_;
	 $user=$user_;
	}

	if($q->param('operation') eq 'upload_1x')
	 { 
	 $action='upload_1x';
	 my $buffer;
	 my $user_ = $q->param('user_');
	 $search_for = $find_;
	 $user=$user_;
	}
	
	if($q->param('operation') eq 'upload_1y')
	 { 
	 $action='upload_1y';
	 my $buffer;
	 my $user_ = $q->param('user_');
	 $search_for = $find_;
	 $user=$user_;
	}
	
	if($q->param('operation') eq 'upload_2y') { 
	 $action='upload_2y';
	 }
	
	if($q->param('operation') eq 'upload_2x') { 
	 $action='upload_2x';
	 }
	 
if($action =~ /nuova_item/i){ &print_add_item;}
elsif($action =~ /conferma_item/i){ &add_record; $message="La nuova item è stata registrata nel Archivio"; $title="Main Menu"; &print_default($title, $message);}
elsif($action =~ /nuova_scheda/i){ &print_add_screen;}
elsif($action =~ /conferma_scheda/i){  &add_record; 
   $message="La nuova scheda è stata registrata nel Archivio";
   &access_problem if($key < 1); &search_db($key); 
   &print_layout_page; &jump_to_url; }
   
elsif($action =~ /upload_1x/i){ $title="upload 1 of 2"; &print_upload_1x_page($ITEM_type);}
elsif($action =~ /upload_1y/i){ $title="upload 1 of 2"; &print_upload_1y_page;}
elsif($action =~ /upload_2x/i){ $title="upload 2 of 2"; &upload_2x;}
elsif($action =~ /upload_2y/i){ $title="upload 2 of 2"; &upload_2y;}
elsif($action =~ /ftp1/i){ &print_ftp_screen; }
elsif($action =~ /advanced_search/i){ $what='advanced_search'; $title="Ricerca avanzata"; &advanced_search($title);}

elsif($action =~ /backup/i){ $title="Backup Adonis Archive"; &backup_adonis; $message="Il backup è stato effetuato"; $title="Menu Principale"; &print_default($title, $message);}

elsif($action =~ /conferma_pura_modifica/i){ $message="Il record è stato modificato"; 
	if ($modify_record eq "elimina"){&delete_records}; ; $key=$keys[0]; &modify_record; 
	$title="Main Menu"; &search_db($key); &print_layout_page; &jump_to_url;
	}


elsif($action =~ /search compact/i){ $what='search - modify & delete'; &search_db($search_for,$search_field); $title="SCHEDE Trovate"; $button_text="Modifica Record"; $choose="modify"; &search_results;}
# elsif($action =~ /elenco/i){ &search_db($search_for,$search_field); $title="Elenco"; $button_text="Modifica Record"; $choose="modify"; &search_elenco;}


elsif($action =~ /scheda/i){ $title="SEARCH Results"; $button_text="Scheda Prodotto"; $choose="modify"; &access_problem if($key < 1); $temp=$search_field; $search_field = "all"; &search_db($key);$search_field = $temp; &search_results;}
elsif($action =~ /search - modify & delete/i){ $what='search - modify & delete'; &search_db($search_for,$search_field); $title="SCHEDE Trovate"; $button_text="Modifica Record"; $choose="modify"; &search_results;}
elsif($action =~ /ADONIS/i){ $title="ADONISUS"; &print_default_ADONIS($title,$message); }
elsif($action =~ /movimento_item/i){ &search_db($search_for); $title="Seleziona il item, se il nominativo già esiste!"; $button_text="aggiungere_item"; $choose="movimento_item"; &search_results_adonis;}
elsif($action =~ /movimento/i){ &search_db($search_for); $title="Seleziona il item per aggiungere il movimento!"; $button_text="aggiungere_movimenti"; $choose="movimento"; &search_results_adonis;}
elsif($action =~ /Modifica Record/i){ $title="Modification Error"; $error_message="You forgot to select a record to modify!"; &access_problem if($key < 1); &search_db($key); &print_modify_page;}
elsif($action =~ /modifica_item/i){ $title="Modification Error"; $error_message="You forgot to select a record to modify!"; &access_problem if($key < 1); &search_db($key); &print_modify_page;}
elsif($action =~ /vedi_item/i){ &access_problem if($key < 1); &search_db($key); &print_layout_page; &jump_to_url;}

elsif($action =~ /modify this record/i){ $title="Modify"; &delete_records; $key=$keys[0]; &add_record; &print_default($title);}
elsif($action =~ /conferma_modifica/i){ $title="Modify"; &delete_records; $key=$keys[0]; &add_record; &print_default($title);}
elsif($action =~ /delete record/i){ $title="Delete Record"; $error_message="You forgot to select a record to delete!"; &access_problem if($key < 1); &delete_records; $message="The record was deleted"; $title="Main Menu"; &print_default($title, $message);}
elsif($action =~ /modify/i){ &search_db($search_for); $title="Modify Which Record?"; $button_text="Modifica Record"; $choose="modify"; &search_results;}
elsif($action =~ /avanti/i){ &search_db($search_for); $title="Modify Which Record?"; $button_text="Modifica Record"; $choose="modify"; &search_results;}
elsif($action =~ /delete/i){ &search_db($search_for); $title="Delete Which Record?"; $button_text="Elimina scheda"; $choose="delete"; &search_results;}
elsif($action =~ /search/i){ &search_db($search_for); $title="Search Results"; $button_text = ""; $choose="search"; $what="search"; &search_results;}
elsif($action =~ /user manager/i){ $title="User Manager"; &user_manager;}
elsif($action =~ /create new user/i){ $title="User Manager - Create New User"; $perform="add"; $button_text ="Add User"; &edit_user;}
elsif($action =~ /edit selected user/i){ $title="User Manager - Edit Selected User"; $perform="edit"; $button_text ="Edit User"; &edit_user;}
elsif($action =~ /edit user/i){ $old_password = $q->param(old_password); &delete_user; $perform="edit"; &add_user;}
elsif($action =~ /remove selected user/i){ $perform="delete"; &delete_user; $title="User Manager"; &user_manager;}
elsif($action =~ /advanced_search/i){ $what='advanced_search'; $title="Ricerca avanzata"; &advanced_search($title);}
elsif($action =~ /nadji/i){ &ajax_name($search_for);}
else { $title="Main Menu"; &print_default($title); }
exit;
}

################# Add Record ##################

sub add_record {
 foreach $required (@required){
 if($q->param($required) eq "") { 
 $title = "Add A Record"; $error_message = "You did not fill out the required information!"; &access_problem($error_message); exit; } }
 $when_added = &get_date;
 $key = time(); 
 $record=$key;
 $record .= "\|$user";
 $record .= "\|$when_added";
 foreach $field (@fields){ 
   ${$field} = $q->param($field);
   ${$field} = &filter(${$field});   
   $record .= "\|${$field}"; 
 }
 unless (-e $database){ open (DB, ">$database") || die "Error creating database. $!\n"; }
 else { open (DB, ">>$database") || die "Error opening database. $! $database\n"; }
 flock DB, $EXCLUSIVE;
 seek DB, 0, 2;
 print DB "$record\n";
 flock DB, $UNLOCK;
 close(DB);
} # End of add_record subroutine.



################# Modify Record ##################

sub modify_record {
 foreach $required (@required){
 if($q->param($required) eq "") { 
 $title = "Add A Record"; $error_message = "You did not fill out the required information!"; &access_problem($error_message); exit; } }
 $when_added = &get_date;
# Eliminando_la_Scheda_precedente or conservendo_la_Scheda_precedente -- may be or not conserved the modification history
 if ($update_mode eq "conserve") { 	$key = time()	}; 
 $record=$key;
 $record .= "\|$user";
 $record .= "\|$when_added";
 foreach $field (@fields){ ${$field} = $q->param($field); ${$field} = &filter(${$field}); $record .= "\|${$field}"; }
 unless (-e $database){ open (DB, ">$database") || die "Error creating database. $!\n"; }
 else { open (DB, ">>$database") || die "Error opening database. $! $database\n"; }
 flock DB, $EXCLUSIVE;
 seek DB, 0, 2;
 print DB "$record\n";
 flock DB, $UNLOCK;
 close(DB);
} # End of modify_record subroutine.














############## Delete Records #################

sub delete_records { 
 open (DATABASE, "$database") or die "Error opening file: $!\n";
 while (<DATABASE>)
 {
 $line = $_;
 chop $line;
 @dbfields = split (/\|/, $line);
 $deleted = "no";
 if ($dbfields[0] eq $q->param(key)) { $deleted = "yes"; if ($user eq $dbfields[1]) { $security_satisfied = "yes"; } }
 elsif ($deleted ne "yes") { $new_data .= "$line\n"; }
 } #end of while
 close (DATABASE);
 if ($authenticate ne "yes") { $security_satisfied = "yes"; }
 if ($security_satisfied ne "yes" && $record_ownership eq "yes" && $admin_user_name ne "$user")
 {
 $error_message = "Lei non ha le permessi necessari per modificare questa scheda!";
 &access_problem($error_message);
 exit;
 } else {
 flock DATABASE, $EXCLUSIVE;
 open (DATABASE, ">$database") or die "Error opening file: $!\n";
 print DATABASE "$new_data";
 close (DATABASE);
 flock DATABASE, $UNLOCK;
 }
 }
 
############## Delete Records @ AGGIORNAMENTO #################













############### Modify Scheda Screen ################
sub print_modify_page{
 ($key,$dbuser,$when_added,@field_vals) = split(/\|/, $results[0]); 
$title="Modifica Record";
&html_header($title);

# assign the values to the variables of each field in the record
$x=0;
foreach $field (@fields){
 ${$field} = &unwrap($field_vals[$x]);
 $x++;
} 
$img_file =$ICONOGRAFIA_file_web; 
# End of foreach assign field loop.


$TAXONOMY_cathegories =~ s/\<br\>/\~/g; # break to tilde
$TAXONOMY_cathegories_broken = $TAXONOMY_cathegories;
$TAXONOMY_cathegories_broken =~ s/\~/\n/g; # tilde_to_break

$rendering_COMPLEX ="$rendering_mode~";
($rendering_mode,$disqus_mode,@altro ) =split(/\~/,$rendering_COMPLEX);
$rendering_mode = "classic" if($rendering_mode eq "");
$disqus_mode = "absent" if($disqus_mode eq "");

$readonly ="";
(@file_web) = split (/\,/,$ICONOGRAFIA_gallery);

print<<HTML;

<style type="text/css">
<!--
.Stile1 {
	color: #FFFFFF;
	font-weight: bold;
}
-->
 </style>
</head>
<SCRIPT type="text/javascript">
<!-- This script generates automatic date field -->
var timerID = null;
var timerRunning = false;
var old_url ="$PAGE_URL";

function stopclock (){
 if(timerRunning)
 clearTimeout(timerID);
 timerRunning = false;

}




function showdate () {


// Array of day names
var dayNames = new Array();
dayNames[0] = "Sunday";
dayNames[1] = "Moday";
dayNames[2] = "Tuesday";
dayNames[3] = "Wednesday";
dayNames[4] = "Thursday";
dayNames[5] = "Friday";
dayNames[6] = "Saturday";

// Array of month Names
var monthNames = new Array();
monthNames[0] = "January";
monthNames[1] = "February";
monthNames[2] = "March";
monthNames[3] = "April";
monthNames[4] = "May";
monthNames[5] = "June";
monthNames[6] = "July";
monthNames[7] = "August";
monthNames[8] = "September";
monthNames[9] = "October";
monthNames[10] = "November";
monthNames[11] = "December";

// Array of Dates
var dateNames = new Array();
for(i = 1 ; i < 10 ; i++)
 dateNames[i]="0"+i;
for(i = 10 ; i < 32 ; i++)
 dateNames[i]=i;


// Elements of Date object assigned to variables
var now = new Date();
var day = now.getDay();
var month = now.getMonth();
var year = now.getFullYear();
var date = now.getDate();


 var hours = now.getHours();
 var minutes = now.getMinutes();
 var seconds = now.getSeconds()
// var timeValue = "" + ((hours >12) ? hours -12 :hours)
 var timeValue = "" + hours
 timeValue += ((minutes < 10) ? ":0" : ":") + minutes
// timeValue += (hours >= 12) ? " p.m." : " a.m."


// Code to assign fully formatted date and time values(e.g., Lunedì, 23/Luglio/2001)
 _date = dateNames[date] + "/" + monthNames[month] +"/" + year;
 document.myForm.Data_Ora.value = _date + " at " + timeValue;
// document.myForm.A_Delivery_date.value = document.myForm.Invoice_date.value;
// document.myForm.A_Delivery_time.value = timeValue;


 timerID = setTimeout("showdate()",1000000);
 timerRunning = true;
}

function startclock () {

 // Make sure the clock is stopped

 stopclock();
 showdate();
}


function change_image() {
 var GALLERY_ = new Array();
		GALLERY_CX = document.myForm.ICONOGRAFIA_gallery.value;
		inputstr = GALLERY_CX;
 GALLERY_CX = inputstr.replace(/\^\\,/,""); // Regex substitute leading comma into nil
 document.myForm.ICONOGRAFIA_gallery.value =GALLERY_CX;
		GALLERY_ = GALLERY_CX.split(',');
		 
 document.img0.src = "$image_path/" + GALLERY_[0];
 document.img1.src = "$image_path/" + GALLERY_[1];
 document.img2.src = "$image_path/" + GALLERY_[2];
 document.img3.src = "$image_path/" + GALLERY_[3];
 document.img4.src = "$image_path/" + GALLERY_[4];
 document.img5.src = "$image_path/" + GALLERY_[5]; 
 document.img6.src = "$image_path/" + GALLERY_[6];
 document.img7.src = "$image_path/" + GALLERY_[7]; 
 
 
 document.myForm.ICONOGRAFIA_file_web.value = GALLERY_[0];
}



var myWind = ""

function doNew_x() {
// either open, or put on the top if it is already existing
	if (myWind == "" || myWind.closed || myWind.name == undefined) {

 pics = window.open("./$script_name?operation=upload_1x","subWindow","HEIGHT=200,WIDTH=620,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes").focus();

	} else{	myWind.focus();	}
}


function doNew_y() {
// either open, or put on the top if it is already existing
	if (myWind == "" || myWind.closed || myWind.name == undefined) {

 pics = window.open("./$script_name?operation=upload_1y","subWindow","HEIGHT=200,WIDTH=620,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes").focus();

	} else{	myWind.focus();	}
}


function setURL() {
 var CONTEXT_ = new Array();
 CONTEXT_CX = document.myForm.TAXONOMY_filesystem_path.value;
 inputstr = CONTEXT_CX;
 CONTEXT_CX = inputstr.replace(/\\ /gi,""); // Regex substitute -- space into nil	.toLowerCase().replace(/\b[a-z]/g	
 inputstr = CONTEXT_CX;
 CONTEXT_CX = inputstr.toLowerCase();
 CONTEXT_ = CONTEXT_CX.split('>');
 nn = CONTEXT_.length;
 
 folder = CONTEXT_[0]; 
 name_element1 = CONTEXT_[1];

 inputstr = name_element1;
 title_name = document.myForm.TAXONOMY_page_title.value;
 if (title_name != "") {inputstr =title_name};
 inputstr = inputstr.replace(/\\u017D/g,"z");
 inputstr = inputstr.replace(/\\u017E/g,"z");
 inputstr = inputstr.replace(/\\u0161/g,"s");
 inputstr = inputstr.replace(/\\u0160/g,"s");

 inputstr = inputstr.replace(/\\u010C/g,"c");
 inputstr = inputstr.replace(/\\u010D/g,"c");
 inputstr = inputstr.replace(/\\u0106/g,"c");
 inputstr = inputstr.replace(/\\u0107/g,"c");

 inputstr = inputstr.replace(/\\u0111/g,"d");
 inputstr = inputstr.replace(/\\u0110/g,"d");
 name_element1 = inputstr.replace(/\\W\+/gi,"_"); // Regex substitute -- strange chars into underscore
 name_element1 = name_element1.toLowerCase(); 

 document.myForm.TAXONOMY_filesystem_path.value =folder + ">" + name_element1;
 
 web_file_URL = folder + "/" + name_element1;
 document.myForm.PAGE_URL.value = web_file_URL;

 if ((web_file_URL === old_url) || (web_file_URL === "url") ) {
    document.myForm.update_mode.value ='eliminate';
 }
 else {
    document.myForm.update_mode.value ='conserve';
 }
 
 
}




<!-- end of automatic date field -->
</SCRIPT>


<BODY bgcolor="white" onLoad="startclock(); timerONE=window.setTimeout">

 <script type="text/javascript" src="$image_path/js/global.js"></script>	
	<script type="text/javascript" src="$image_path/js/style.js"></script>
	<script type="text/javascript" src="$image_path/js/calculus3.js"></script>
 <center>
 <b>
 
<INPUT TYPE=HIDDEN NAME=key value="$key">
 			<table border="0" cellpadding="2" cellspacing="1" width="80%">
 <tbody>
 <tr>

 <td colspan="2" bgcolor="#e0e0e0"><div align="center"><strong>Scheda</strong></div></td>

 </tr>
 <tr bgcolor="#F5F5F5">
 <td colspan="2">
 <table width="660" border="0" cellspacing="0">

 <tbody>
 <tr>
 <td width="106" ><b>RECORD_ID:</b></td>
 <td width="144" ><input name="RECORD_ID" readonly value="$RECORD_ID" onKeyDown="return tabOnEnter (this, event);" type="text"></td>
 <td width="50" ><div align="left"><b>ID_number:</b></div></td>
 <td width="500" ><input name="ITEM_number" value="$ITEM_number" onKeyDown="return tabOnEnter (this, event);" type="text" size=8></td>
 </tr>
 </tbody>
 </table>
 </td>

 </tr>
 <tr>
 <td colspan="2" bgcolor="#009900">
 <div align="center"><span class="Stile1">TITLE & NAVIGATION TAXONOMY CONTEXT</span>
 <br>
 <img id="img0" name="img0" src="$image_path/$file_web[0]" align=left border="1" height="100" onclick="change_image();">
 <img id="img1" name="img1" src="$image_path/$file_web[1]" align=left border="1" height="100" onclick="change_image();">
 <img id="img2" name="img2" src="$image_path/$file_web[2]" align=left border="1" height="100" onclick="change_image();">
 <img id="img3" name="img3" src="$image_path/$file_web[3]" align=left border="1" height="100" onclick="change_image();">
 <img id="img4" name="img4" src="$image_path/$file_web[4]" align=left border="1" height="100" onclick="change_image();">
 <img id="img5" name="img5" src="$image_path/$file_web[5]" align=left border="1" height="100" onclick="change_image();">
 <img id="img6" name="img6" src="$image_path/$file_web[6]" align=left border="1" height="100" onclick="change_image();">
 <img id="img7" name="img7" src="$image_path/$file_web[7]" align=left border="1" height="100" onclick="change_image();">
 
 </div>
 </td>
 </tr>
 <tr>
 <td bgcolor="#d5ffd5"><table border="0" cellspacing="0">

 <tbody>
 <tr>
 <td colspan="2"><div align="center"><b>TITLE & NAVIGATION TAXONOMY CONTEXT</b></div></td>
 </tr>
 <tr>

 <td><div align="left"><b>Name:</b></div></td>
 <td><input name="TAXONOMY_page_title" value="$TAXONOMY_page_title" size="40" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>



 <tr>
 <td><div align="left"><b>Subtitle:</b></div></td>
 <td><input name="TAXONOMY_subtitle" value="$TAXONOMY_subtitle" size="40" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>
 

 

  
 </tbody>
 </table></td>
 <td bgcolor="#d5ffd5" width="100%"><table border="0" cellspacing="0">

 <tbody>
 <tr>
 <td width="164"><div align="left"><b>Context path:</b></div></td>
 <td width="187"><input name="TAXONOMY_filesystem_path" value="$TAXONOMY_filesystem_path" size="30" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>
 <tr>
 <td><div align="left"><b><a href="javascript:doNew_x()" onMouseOver="window.status='File Upload y'; return true;">Image file</a>:</b></div></td>
 <td><input name="ICONOGRAFIA_file_web" value="$ICONOGRAFIA_file_web" size="18" onChange="change_image();" onClick="change_image();" $readonly type="text">
 <INPUT onclick="change_image();doNew_x()" type=button value="Upload" name=storage></td>
 </tr>
 <tr>
 <td width="164"><div align="left"><b>photo gallery:</b></div></td>
 <td width="187"><input name="ICONOGRAFIA_gallery" value="$ICONOGRAFIA_gallery" size="30" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>
 </tbody>
 
 </table></td>
 </tr>



 



 <tr>
 <td colspan="2" bgcolor="#990033" ><div align="center" class="Stile1">TAXONOMY & CONTEXT CATEGORIES</div></td>

 </tr>
 <tr>

 <td colspan="2" bgcolor="#ffd5d5" ><b>Metacathegory: 
 <input name="TAXONOMY_metacathegory" value="$TAXONOMY_metacathegory" size="52" onkeydown="return tabOnEnter (this, event);" type="text">
 <br>
 </b> 


</td>
</tr>

 <tr>
 <td><div align="left"><b>Cathegory</b> / this page</div>
 <input name="TAXONOMY_cathegory" value="$TAXONOMY_cathegory" size="40" onkeydown="return tabOnEnter(this, event);" type="text">
 </td>

 <td><div align="left"><b>Taxonomy Path </b> / breadcrumbs</div>
 <input name="TAXONOMY_breadcrumbs" value="$TAXONOMY_breadcrumbs" size="40" onkeydown="return tabOnEnter(this, event);" type="text">
 </td>

 </tr>
 <tr>
 <td bgcolor="#ffd5d5" ><table border="0" cellspacing="0">
 <tbody>

 <tr>
 <td>&nbsp;</td>
 <td>Related Categories / le voci in questa categoria<textarea name="TAXONOMY_cathegories" cols="70" rows="7" >$TAXONOMY_cathegories_broken</textarea></td>
 </tr>

 </tbody>
 </table></td>

 <td bgcolor="#ffd5d5" width="100%">
 Related SubCategories<textarea name="TAXONOMY_subcathegories" cols="70" rows="7" >$TAXONOMY_subcathegories</textarea></td>
 </td>
 </tr>

 
</td>
 

<tr bgcolor="#879D1C">

 <td colspan="2"><div align="center"><span class="Stile1">DESCRIPTIVE INFORMATION</span></div></td>
 </tr>
 <tr>
 <td bgcolor="#dcec91"><table border="0" cellspacing="0">
 <tbody>
 <tr>

 <td valign="top"><b>Main content:<br>
  <textarea name="PAGE_content" cols="70" rows="16">$PAGE_content</textarea>
 </b></td>
 <td valign="top">&nbsp; </td>
 </tr>
 
 <tr>
 
 <td valign="top">&nbsp;				 </td>
 </tr>
 </tbody>
  </table></td>
 <td bgcolor="#dcec91"><table border="0" cellspacing="0">
 <tbody>


 <tr>
 <td valign="top"><strong>note varie:<br>

 </strong>
 <textarea name="PAGE_notes" cols="70" rows="7" >$PAGE_notes</textarea></td>
 </tr>

 </tbody>
 </table></td>
 </tr>

 <tr bgcolor="#9AC886">
 <td colspan="2"><div align="center" class="Stile1">ULTIMO AGGIORNAMENTO</div></td>

 </tr>
 <tr bgcolor="#dcecd5">
 <td colspan="2"> <table border="0" cellspacing="0">
 <tbody>
 <tr>
  <td width="85"><b>Data e ora:</b></td>
  <td ><input name="Data_Ora" value="$Data_Ora" onClick="startclock(); timerONE=window.setTimeout" size="54" onKeyDown="return tabOnEnter (this, event);" readonly></td>
 </tr>
 <tr>
  <td width="85"><b>URL:</b></td>
  <td ><input name="PAGE_URL" value="$PAGE_URL" onClick="setURL();" size="54" onKeyDown="return tabOnEnter (this, event);" readonly></td>
 </tr>
 <tr>
  <td width="85"><b>header_type:</b></td>
  <td >
  <input name="header_type" value="classic" type="hidden">
 <input name="header_" type="radio" value="classic" checked onClick="header_type.value ='classic';" >Classic
 <input name="header_" type="radio" value="menu" onClick="header_type.value ='menu';" >Menu
  </td>
 </tr> 
 <tr>
  <td width="85"><b>rendering:</b></td>
  <td >
 <input name="rendering_mode" value="classic" type="hidden">
 <input name="rendering_" type="radio" value="classic" checked onClick="rendering_mode.value ='classic';" >Classic
 <input name="rendering_" type="radio" value="flash" onClick="rendering_mode.value ='flash';" >Flash - Slide show
 </td>
 </tr>
 <tr>
  <td width="85"><b>Disqus:</b></td>
  <td >
  <input name="disqus_mode" value="absent" type="hidden">
 <input name="disqus_" type="radio" value="absent" checked onClick="disqus_mode.value ='absent';" >Absent
 <input name="disqus_" type="radio" value="present" onClick="disqus_mode.value ='present';" >Present
 </td>
 </tr>
 </tbody>
 </table></td>
 </tr>
 <tr bgcolor="#F5F5F5">
 <td colspan="2" align="center"><br>
 <INPUT TYPE=button onClick="setURL();startclock();timerONE=window.setTimeout;myForm.action.value='Conferma_pura_modifica';this.form.submit();" VALUE="Salva scheda" > 
 <br>
<input name="update_mode" value="conserve" type="text" readonly size="6">
  </td>

 </tr>
 </tbody>
 </table>
<br>

</b>

	</td></tr>
 
</center>
<INPUT TYPE="hidden" NAME="archive_mode" VALUE="$archive_mode">
HTML
&html_footer;
}
############# end of Modify Screen ################







############### Check item #################

sub check_item{
 $r_val = $_[0];
 $index = $_[1];
 if($r_val =~ /^\s*$/){$r_val="&nbsp;"; return($r_val);}
 if( ($index_of_image_url ne "") && (($index eq $index_of_image_url)|($index eq $index2_of_image_url)) ) { 
 if ($r_val =~ /http:\/\//i){ $link = "$r_val"; }  
 else { $link = "$image_path/"; $link .= "$r_val"; }
 $r_val2 = "<a href=\"$link\">$r_val</a>"; $r_val = $r_val2; 
 }
 if($index_of_email ne "" && $index eq $index_of_email) { $r_val2 = "<a href=\"mailto:$r_val\">$r_val</a>"; $r_val = $r_val2; }
 return($r_val);
}
################### Login ###################
sub login {
$message = $_[0];
$title = "Login";
&html_header($title,$message);
print<<HTML;
<TABLE><TR>
<TD><B>User Name</B><BR><INPUT TYPE="text" NAME="user" SIZE="30"></TD></TR>
<TR><TD><B>Password</B><BR><INPUT TYPE="password" NAME="password" SIZE="30" onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13))
 {myForm.action.value='Submit Login';this.form.submit( );return false;} 
 else return true;"></TD>
</TR>
<TR><TD ALIGN=MIDDLE><BR>
<INPUT TYPE=button onClick=\" myForm.action.value='Submit Login';this.form.submit( );\" VALUE="Submit Login" >
HTML
if($register eq "yes") { print "<INPUT TYPE=button onClick=\" myForm.action.value='Register';this.form.submit( );\" VALUE=\"Register\">"; }
print<<HTML;
</TD>
</TR>
</TABLE>
HTML
$footer = "login";
&html_footer;
}

################ Authenticate ################

sub authenticate {
 $form_password = $q->param(password);
 open (USERFILE, "$user_file") || die "Error opening user file. $!\n";
 $user_matched = 0;
 while (<USERFILE>) {
	chop($_);
	($password, $user, $u_search, $u_add, $u_modify, $u_delete, @extra_user_fields) = split(/\|/, $_);
	if ($q->param(user) eq $user) {
	 $user_matched = 1;
	 $username = $user;
	 $user_add = $u_add;
	 $user_modify = $u_modify;
	 $user_search = $u_search;
	 $user_delete = $u_delete;
	if (&auth_encrypt ($form_password, $password) eq $password) {
 	 $cookie = cookie(-NAME=>'user',-VALUE=>"$user",-EXPIRES=>'+3d');
	} # End of if passwords match
	} # End of if username matches
 } # End of While
 close (USERFILE);
 if ($user_matched == 1 && $cookie eq "") {
	 $footer = "login";
	 $title = "Login";
	 $error_message = "La sua Password NON corrisponde al suo User name!";
	 &access_problem($error_message);
	 exit; }
 if ($user_matched == 0) {
	 $footer = "login";
	 $title = "Login";
	 $error_message = "Your user name was not found!";
	 &access_problem($error_message);
	 exit; }
print header(-cookie=>[$cookie]);
$set_cookie = "yes";
$message = "User \"$username\" is now logged in";
$title = "Main Menu"; 
$user = $username;
&print_default($title, $message);
exit;
}

############### Register Form ################

sub register {
$title = "Register A New User";
&html_header($title);
 print<<HTML;
<TABLE><TR>
<TD><B>User Name</B><BR><INPUT TYPE="text" NAME="user" SIZE="30"></TD></TR>
<TR><TD><B>Password</B><BR><INPUT TYPE="password" NAME="password" SIZE="30"></TD></TR>
<TR><TD><B>Re-Type Password</B><BR><INPUT TYPE="password" NAME="password2" SIZE="30"></TD></TR>
HTML
 foreach $extra (@extra_user_fields){
 print "<TR><TD><B>\u$extra</B><BR><INPUT TYPE=\"text\" NAME=\"$extra\" SIZE=\"30\"></TD></TR>";
 }
 print<<HTML;
<TR><TD ALIGN=MIDDLE><BR>
<INPUT TYPE="hidden" NAME="search" value="$default_user_permission_search">
<INPUT TYPE="hidden" NAME="add" value="$default_user_permission_add">
<INPUT TYPE="hidden" NAME="modify" value="$default_user_permission_modify">
<INPUT TYPE="hidden" NAME="delete" value="$default_user_permission_delete">
<INPUT TYPE=button onClick=" myForm.action.value='Add User';this.form.submit( );" VALUE="Add User" >
<INPUT TYPE=button onClick=" myForm.action.value='Back To Login';this.form.submit( );" VALUE="Back To Login" >
</TD>
</TR>
</TABLE>
HTML
$footer = "login";
&html_footer;
}

################ Add User ##################

sub add_user {
$user = $q->param(user);
$password = $q->param(password);
$password2 = $q->param(password2);
if ($perform eq "edit" && $password eq "") { $use_old = "yes"; $password = "$old_password"; $password2 = "$old_password";}
	if ($password ne $password2 || $password eq "" || $password2 eq "") {
	 $footer = "login";
	 $title = "Register A New User";
	 $error_message = "Your passwords didn't match!";
	 &access_problem($error_message);
	 exit;	}
@form_vars = ('user', 'search', 'add', 'modify', 'delete', @extra_user_fields);
 foreach $x (@form_vars) {
	if ($q->param($x) eq "" || $q->param($x) =~ /\|/) {
 $footer = "login";
	 $title = "Register A New User";
	 $error_message = "You must fill in all of the fields in the registration form!";
	 &access_problem($error_message);
	 exit;	} }
 if ($check_user_duplicates eq "yes") {
	open (USERFILE, "$user_file");
	$user_matched = 0;
	while (<USERFILE>) {
	 chop($_);
	 @f = split(/\|/, $_);
	 if ($f[1] eq $user) {
		$user_matched = 1;
		last;	 }	} # End of while userfile open
	close (USERFILE);
	if ($user_matched == 1) {
	 $footer = "login";
	 $title = "Register A New User";
	 $error_message = "That user name is already taken!";
	 &access_problem($error_message);
	 exit;	} # End of user matched (found duplicate) 
	} # End of if check duplicates on
 srand(time|$$);
 $random = "abcdefghijklmnopqrstuvwxyz1234567890";
 $real_password = $password;
 $salt = "";
 for (1..2) { $salt .= substr($random,int(rand(36)),1); }
 if ($use_old ne "yes") { $password = &auth_encrypt ($password, $salt); }
 $auth=$password;
 foreach $field (@form_vars){
 ${$field} = $q->param($field);
 $auth .= "\|${$field}"; }
 unless (-e $user_file){
 open (AUTH_FILE, ">$user_file") || die "Error creating user file. $!\n";
 } else {
 open (AUTH_FILE, ">>$user_file") || die "Error opening user file. $!\n";
 }
 flock AUTH_FILE, $EXCLUSIVE;
 seek AUTH_FILE, 0, 2;
 print AUTH_FILE "$auth\n";
 flock AUTH_FILE, $UNLOCK;
 close(AUTH_FILE);
if ($admin_add eq ""){
 $message = "New User Added<br>You may now login with your new user name below.";
 &login($message);
 } else { 
 $title = "User Manager";
 $message = "User Added/Modified";
 &user_manager($message);
 }
}

################ Create Admin ###############

sub create_admin{
&html_header($title);
 print<<HTML;
<center><TABLE WIDTH=275>
<TR>
<TD>Please start out by setting the Administrator information below. When logged in as the below user, you will be able to access additional options which are only available to the database administrator.</TD>
</TR><TR>
<TD><br><B>User Name:</B> $admin_user_name<br>This can be changed in the script configurations.</TD></TR>
<TR><TD><br><B>Password</B><BR><INPUT TYPE="password" NAME="password" SIZE="30"></TD></TR>
<TR><TD><B>Re-Type Password</B><BR><INPUT TYPE="password" NAME="password2" SIZE="30"></TD></TR>
HTML
 foreach $extra (@extra_user_fields){
 print "<TR><TD><B>\u$extra</B><BR><INPUT TYPE=\"text\" NAME=\"$extra\" SIZE=\"30\"></TD></TR>";
 }
 print<<HTML;
<TR><TD ALIGN=MIDDLE><BR><INPUT TYPE="hidden" NAME="user" value="$admin_user_name">
<INPUT TYPE="hidden" NAME="search" value="yes">
<INPUT TYPE="hidden" NAME="add" value="yes">
<INPUT TYPE="hidden" NAME="modify" value="yes">
<INPUT TYPE="hidden" NAME="delete" value="yes">
<INPUT TYPE=button onClick=" myForm.action.value='Add Administrator';this.form.submit( );" VALUE="Add Administrator" >
</TD>
</TR>
</TABLE></center>
HTML
$footer = "login";
&html_footer;
exit;
}

################ User Manager ###############

sub user_manager{
$message = $_[0];
&html_header($title,$message);
 print<<HTML;
<center>
<TABLE>
<TR>
<TD><select name="selected_user" size=8>
HTML
 open (USERFILE, "$user_file") || die "Error opening user file. $!\n";
 while (<USERFILE>) {
	chop($_);
	($password, $user, $u_search, $u_add, $u_modify, $u_delete, @extra_user_fields) = split(/\|/, $_);
	print "<option value=\"$user\">$user</option>\n";
 } # End of While
 close (USERFILE);
 print<<HTML;
</select></TD>
<td valign=top>
<input TYPE=button onClick=" myForm.action.value='Create New User';this.form.submit( );" value="Create New User"><p>
<input TYPE=button onClick=" myForm.action.value='Edit Selected User';this.form.submit( );" value="Edit Selected User"><p>
<input TYPE=button onClick=" myForm.action.value='Remove Selected User';this.form.submit( );" value="Remove Selected User">
</TR>
</TABLE>
</center>
HTML
&html_footer;
exit;
}

############### Add/Edit User ################

sub edit_user {
if ($perform eq "edit" && $selected_user eq "" ) {
	 $title = "User Manager - Edit Selected User";
	 $error_message = "You forgot to select a user record to edit!";
	 &access_problem($error_message);
	 exit;
}
if ($perform eq "edit") {
 open (USERFILE, "$user_file") || die "Error opening user file. $!\n";
 while (<USERFILE>) {
	chop($_);
	($password, $userfound, $u_search, $u_add, $u_modify, $u_delete, @other_user_fields) = split(/\|/, $_);
	if ($selected_user eq $userfound) {
	 @found_other_fields = @other_user_fields;
	 $edit_user = $userfound;
	 $edit_user_add = $u_add;
	 $edit_user_modify = $u_modify;
	 $edit_user_search = $u_search;
	 $edit_user_delete = $u_delete;
	 $old_password = $password;
	} # End of if username matches
 } # End of While
 close (USERFILE);
}
&html_header($title);
 print<<HTML;
<TABLE><TR>
<TD><B>User Name</B><BR><INPUT TYPE="text" NAME="user" SIZE="30" value="$edit_user"></TD></TR>
HTML
if ($perform eq "edit") {
 print<<HTML;
<TR><TD><B>New Password</B><br>Leave blank if you aren't changing passwords.<BR><INPUT TYPE="password" NAME="password" SIZE="30"></TD></TR>
HTML
} else {
 print<<HTML;
<TR><TD><B>Password</B><BR><INPUT TYPE="password" NAME="password" SIZE="30"></TD></TR>
HTML
}
if ($perform eq "edit") {
 print<<HTML;
<TR><TD><B>Re-Type New Password</B><br>Leave blank if you aren't changing passwords.<BR><INPUT TYPE="password" NAME="password2" SIZE="30"></TD></TR>
HTML
} else {
 print<<HTML;
<TR><TD><B>Re-Type Password</B><BR><INPUT TYPE="password" NAME="password2" SIZE="30"></TD></TR>
HTML
}
$extra_fields_count = @found_other_fields;
 for($x=0;$x<$extra_fields_count;$x++){
print "<TR><TD><B>\u$extra_user_fields[$x]</B><BR><INPUT TYPE=\"text\" NAME=\"$extra_user_fields[$x]\" SIZE=\"30\" value=\"$found_other_fields[$x]\"></TD></TR>";
 }
if ($perform eq "add") {
 foreach $extra (@extra_user_fields){
 print "<TR><TD><B>\u$extra</B><BR><INPUT TYPE=\"text\" NAME=\"$extra\" SIZE=\"30\"></TD></TR>";
 }
}
 print<<HTML;
<tr><td><br><b>User Permissions</b></td></tr>
HTML

if ($edit_user_search eq "no"){
 print<<HTML;
<tr><td>Search: <input type="radio" name="search" value="yes"> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="search" value="no" checked> No</td></tr>
HTML
} else {
 print<<HTML;
<tr><td>Search: <input type="radio" name="search" value="yes" checked> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="search" value="no"> No</td></tr>
HTML
}
if ($edit_user_add eq "no"){
 print<<HTML;
<tr><td>Add: <input type="radio" name="add" value="yes"> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="add" value="no" checked> No</td></tr>
HTML
} else {
 print<<HTML;
<tr><td>Add: <input type="radio" name="add" value="yes" checked> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="add" value="no"> No</td></tr>
HTML
}
if ($edit_user_modify eq "no"){
 print<<HTML;
<tr><td>Modify: <input type="radio" name="modify" value="yes"> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="modify" value="no" checked> No</td></tr>
HTML
} else {
 print<<HTML;
<tr><td>Modify: <input type="radio" name="modify" value="yes" checked> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="modify" value="no"> No</td></tr>
HTML
}
if ($edit_user_delete eq "no"){
 print<<HTML;
<tr><td>Delete: <input type="radio" name="delete" value="yes"> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="delete" value="no" checked> No</td></tr>
HTML
} else {
 print<<HTML;
<tr><td>Delete: <input type="radio" name="delete" value="yes" checked> Yes &nbsp;&nbsp;&nbsp;<input type="radio" name="delete" value="no"> No</td></tr>
HTML
}
print<<HTML;
<TR><TD ALIGN=MIDDLE><BR><input type=hidden name="old_password" value="$old_password">
<input type=hidden name="selected_user" value="$edit_user">
<input type=hidden name="admin_add" value="yes">
<INPUT TYPE=button onClick=" myForm.action.value='$button_text';this.form.submit( );" VALUE="$button_text" >
<INPUT TYPE=button onClick=" myForm.action.value='User Manager';this.form.submit( );" VALUE="User Manager" >
</TD>
</TR>
</TABLE>
HTML
&html_footer;
}

################ Delete User ###############

sub delete_user{
if ($selected_user eq "" ) {
	 $title = "User Manager - Remove Selected User";
	 $error_message = "You forgot to select a user record to remove!";
	 &access_problem($error_message);
	 exit;
}
if ($selected_user eq "$admin_user_name" && $perform eq "delete") {
	 $title = "User Manager - Remove Selected User";
	 $error_message = "You are not allowed to remove the administrator!";
	 &access_problem($error_message);
	 exit;
}
 open (USERFILE, "$user_file") or die "Error opening file: $!\n";
 while (<USERFILE>)
 {
 $line = $_;
 chop $line;
 @dbfields = split (/\|/, $line);
 $deleted = "no";
 if ($dbfields[1] eq $selected_user) { $deleted = "yes"; }
 elsif ($deleted ne "yes") { $new_data .= "$line\n"; }
 } #end of while
 close (USERFILE);
 flock USERFILE, $EXCLUSIVE;
 open (USERFILE, ">$user_file") or die "Error opening file: $!\n";
 print USERFILE "$new_data";
 close (USERFILE);
}

################# Logout ###################

sub logout {
$cookie = cookie(-NAME=>'user',-VALUE=>"$user",-EXPIRES=>'-1d');
print header(-cookie=>[$cookie]);
$set_cookie = "yes";
$message = "User \"$user\" logged out";
&login($message);
 } # end of logout

############ Encrypt Password ###############

sub auth_encrypt {
 local ($field, $salt) = @_;
 $field = crypt ($field, $salt);
 $field;
 } # end of encrypt

############## Access Problem ##############

sub access_problem {
&html_header($title);
 print<<HTML;
<BR>
<FONT SIZE=4 FACE="ARIAL" COLOR=RED><B>Error!</B></FONT><P>
<FONT SIZE=4 FACE="ARIAL">$error_message</FONT><P>
<INPUT TYPE="button" VALUE=" Indietro " onClick="history.go(-1)"><br><br>
HTML
&html_footer;
exit;
}




################ Get Date ##################
sub get_date {
 local ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst,$date); 
 local (@days, @months);
 @days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
 @months = ('January','February','March','April','May','June','July','August','September','October','November','December');
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
 if ($hour < 10) { $hour = "0$hour"; }
 if ($min < 10) { $min = "0$min"; }
 if ($sec < 10) { $sec = "0$sec"; }
 $mon++;
 $year += 1900;
 $date = "$mon/$mday/$year at $hour\:$min\:$sec";
 return $date;
}


################ Pick Datum ##################
sub pick_datum {
 local ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst,$date); 
 local (@days, @months);
 @days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
 @months = ('January','February','March','April','May','June','July','August','September','October','November','December');
 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
 $mon++;
 $year += 1900;
 $date = "$mday/$mon/$year";
 return $date;
}


############## Form Header #################
sub form_header {
print<<HTML;
<FORM name="myForm" METHOD="post" ACTION="$script_name">
<INPUT TYPE="hidden" NAME="action" VALUE="$action">
HTML
}

############## Form Footer #################

sub form_footer {
if($footer eq "default") {
# if ($user_search eq "yes") {print "<INPUT TYPE=button onClick=\"myForm.action.value='search';this.form.submit( );\" VALUE=\"search\" > "; }
# if ($user_add eq "yes") {print "<INPUT TYPE=button onClick=\" myForm.action.value='ADONIS';this.form.submit( );\" VALUE=\"ADONIS\" > "; }
if ($authenticate eq "yes") {print "<INPUT TYPE=button onClick=\"myForm.action.value='search compact';this.form.submit( );\" VALUE=\"trova\" > "; }
if ($authenticate eq "yes") {print "<INPUT TYPE=button onClick=\" myForm.action.value='nuova_scheda';this.form.submit( );\" VALUE=\"Nuova scheda\" > "; }
# if ($authenticate eq "yes") {print "<INPUT TYPE=button onClick=\" myForm.action.value='nuova_item';this.form.submit( );\" VALUE=\"Nuova item\" > "; }
if ($authenticate eq "yes") { print "<INPUT TYPE=button onClick=\" myForm.action.value='Logout';this.form.submit( );\" VALUE=\"Logout\" >\n"; }
}
elsif($footer eq "login") { print "\&nbsp\;"; }
 else { print "<INPUT TYPE=button onClick=\" myForm.action.value='Main Menu';this.form.submit( );\" VALUE=\"Main Menu\" >";
if ($authenticate eq "yes") { print "<INPUT TYPE=button onClick=\"myForm.action.value='Logout';this.form.submit( );\" VALUE=\"Logout\" >";} }
print "<input type=hidden name=\"user_search\" value=\"$user_search\">\n";
print "<input type=hidden name=\"user_add\" value=\"$user_add\">\n";
print "<input type=hidden name=\"user_modify\" value=\"$user_modify\">\n";
print "<input type=hidden name=\"user_delete\" value=\"$user_delete\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"user\" VALUE=\"$user\">\n";
 print "<input type=hidden name=\"user_trans\" value=\"$user_trans\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"authenticate\" VALUE=\"$authenticate\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"message\" VALUE=\'$message\'>\n";
}



############## HTML Header #################

sub html_header{
print "Content-type: text/html;\n\n";
if($use_external_html eq "yes") { 
%external_variables = (title=>$title, message=>$message,);
print html_template("$external_html_header", \%external_variables); 
&form_header;
} else {
 print<<HTML;
<HTML><HEAD>
 <meta http-equiv="content-type" content="text/html; charset=utf8">
 <TITLE>$db_name - $_[0]</TITLE>
 </HEAD>
<BODY BGCOLOR="#FFFFFF">
 <script type="text/javascript" src="$image_path/js/global.js"></script>	
	<script type="text/javascript" src="$image_path/js/style.js"></script>
 <CENTER><B>
 $db_name
 </B><p><FONT SIZE=3 FACE="ARIAL" COLOR=RED><B>$_[1]</B></FONT></CENTER><P>
 <CENTER>
 <TABLE BORDER=1 WIDTH="$table_width" CELLSPACING="0" CELLPADDING="3">
 <TR> 
 <TD BGCOLOR="#e0e0e0"> 
 <CENTER> 
 <B>$_[0]</B>
 </CENTER>
 </TD>
 </TR>
 <TR> 
 <TD align=middle><BR>

HTML
&form_header;
}
}

############## HTML Footer #################

sub html_footer{
if($use_external_html eq "yes") { 
%external_variables = (title=>$title, message=>$message,);
&form_footer;
print html_template("$external_html_footer", \%external_variables); 
if ($user eq "$admin_user_name" && $footer ne "login" && $authenticate eq "yes") {
print "<center><INPUT TYPE=button onClick=\"myForm.action.value='User Manager';this.form.submit( );\" VALUE=\"User Manager\" ></center><p>";
}
} else {
 print<<HTML;
 <BR></TD></TR>
 <TR> 
 <TD BGCOLOR="#e0e0e0"><CENTER> 
HTML
&form_footer;
 print<<HTML;
 </CENTER>
 </TD>
 </TR>
</TABLE><P>
HTML
print $copyright_note;
if ($user eq "$admin_user_name" && $footer ne "login" && $authenticate eq "yes") {
print "<center><INPUT TYPE=button onClick=\"myForm.action.value='User Manager';this.form.submit( );\" VALUE=\"User Manager\" ></center><p>";
}

 print<<HTML;
<form name="myForm2">
<input type="hidden" value="Write" onClick="document.myForm.elements[0].focus(); "> 
</form>
</BODY></HTML>
HTML
	}
}

### To avoid usual situation like:
### After filling out the text field, user HAVE to click the specified button to 
### submit the form. If you press enter to submit the form it reloads the form.
### I have written small Javascript code in order to avoid previous behavior and to:
### Process the form by pressing the <ENTER> by putting the focus on the specified (default) button
### In the input field must be inserted the EVENT HANDLER
### like: <INPUT TYPE="text" NAME="search_for" SIZE="40" 
### onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13))
### {myForm.action.value='Logout';this.form.submit( );return false;} else return true;" >


############## HTML Footer item #################
sub html_footer_item{
if($use_external_html eq "yes") { 
%external_variables = (title=>$title, message=>$message,);
$footer="default_item";
&form_footer_item;
print html_template("$external_html_footer", \%external_variables); 
print $copyright_note;
} else {
 print<<HTML;
 <BR></TD></TR>
 <TR> 
 <TD BGCOLOR="#e0e0e0"><CENTER> 
HTML
&form_footer_item;
 print<<HTML;
 </CENTER>
 </TD>
 </TR>
</TABLE><P>
HTML
print $copyright_note;
print<<HTML;
</FORM>
 </CENTER>

<form name="myForm2">
<input type="hidden" value="Write" onClick="document.myForm.elements[0].focus(); "> 
</form>



</BODY></HTML>
HTML
	}
}



################ ADONIS 1 ##################

sub print_default_ADONIS {
&html_header;
 print<<HTML;
 <TABLE BORDER=0 CELLSPACING="0" CELLPADDING="3"><TR><TD COLSPAN=3>
<B>item numero:</B><BR><INPUT TYPE="text" NAME="search_for" SIZE="40" 
onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13))
 {myForm.action.value='Avanti';this.form.submit( );return false;} 
 else return true;" ></TD>
 </TR><TR> 
<BR>
</TD></TR></TABLE><br>
HTML
$footer="default";
&html_footer_item;
} # End of print_default_ADONIS subroutine.


############## Form Footer item #################

sub form_footer_item {
if($footer eq "default") {
if ($authenticate eq "yes") {print "<INPUT TYPE=button onClick=\"myForm.action.value='Avanti';this.form.submit( );\" VALUE=\"Avanti\" > "; }

if ($user_delete eq "yes") {print "<INPUT TYPE=button onClick=\"myForm.action.value='Delete';this.form.submit( );\" VALUE=\"Delete\" > "; }
}
elsif($footer eq "login") { print "\&nbsp\;"; }
 else { print "<INPUT TYPE=button onClick=\"myForm.action.value='Main Menu';this.form.submit( );\" VALUE=\"Main Menu\" >"; 
if ($authenticate eq "yes") { print " <INPUT TYPE=button onClick=\"myForm.action.value='Logout';this.form.submit( );\" VALUE=\"Logout\" >";} }
print "<input type=hidden name=\"user_search\" value=\"$user_search\">\n";
print "<input type=hidden name=\"user_add\" value=\"$user_add\">\n";
print "<input type=hidden name=\"user_modify\" value=\"$user_modify\">\n";
print "<input type=hidden name=\"user_delete\" value=\"$user_delete\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"user\" VALUE=\"$user\">\n";
 print "<input type=hidden name=\"user_trans\" value=\"$user_trans\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"authenticate\" VALUE=\"$authenticate\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"message\" VALUE=\'$message\'>\n";
}

############ Print Next Page Buttons ###########################
sub next_page_buttons {

if ($rows_left_to_view > 0 && $show ne "no") {
 print "<P><INPUT TYPE=\"hidden\" NAME=\"new_hits_seen\" VALUE=\"$new_hits_seen\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"which_search\" VALUE=\"$which_search\">";

if ($rows_left_to_view == 1){ 
print<<HTML;
<INPUT TYPE=button onClick=" myForm.action.value='$what';this.form.submit( );" VALUE="Vedi ultima Scheda" >
HTML
}; 

if ( ($rows_left_to_view <= $max_rows_returned) && ($rows_left_to_view > 1)){ 
print<<HTML;
<INPUT TYPE=button onClick=" myForm.action.value='$what';this.form.submit( );" VALUE="Vedi ultime $rows_left_to_view schede" >
HTML
};

if ($rows_left_to_view > $max_rows_returned) { 
print<<HTML;
<INPUT TYPE=button onClick=" myForm.action.value='$what';this.form.submit( );" VALUE="Vedi seguente $max_rows_returned schede" >
HTML
} ; 
}
}







############## Results Screen NEW ################
sub search_results{
&html_header($title);
 $rows_left_to_view = $total_row_count - $new_hits_seen;
 $start_hit = $hits_seen + 1;
 $end_hit = $new_hits_seen;
 $hits_displayed = $end_hit - $start_hit + 1;
 if ($total_row_count > 1) {
 print qq~<P>Sono state trovate:<B>$total_row_count</B> schede, cercando: <B>$search_for</B><br>~;
 if ($total_row_count > $max_rows_returned) {
 if ($hits_displayed == 2) { print qq~<B>Last two</B> records (mostrate in questa schermata)<BR>~; }
 elsif ($hits_displayed == 1) { print qq~<B>Last</B> record (mostrate in questa schermata)<BR>~; }
 else { print qq~<B>$start_hit</B> - <B>$end_hit</B> (mostrate in questa schermata)<BR>~; }
 } #end if
 } #end if ... > 1
 else { print qq~<P>Trovate: <B>1</B> record\n~; }
print "<br>";
############### PRINT BUTTON which_search #######

print "<br>";
 print "<INPUT TYPE=button onClick=\" myForm.action.value='Main Menu';this.form.submit( );\" VALUE=\"Main Menu\" >";



$which_search = $choose;

&next_page_buttons($rows_left_to_view);
 print "<INPUT TYPE=\"hidden\" NAME=\"sort_on\" VALUE=\"$sort\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"display\" VALUE=\"$display\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"logic\" VALUE=\"$logic\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"update_mode\" VALUE=\"$update_mode\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"archive_mode\" VALUE=\"$archive_mode\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"rendering_mode\" VALUE=\"$rendering_mode\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"header_type\" VALUE=\"$header_type\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"search_for\" VALUE=\"$search_for\">\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"key\" VALUE='0'>\n";
 print "<INPUT TYPE=\"hidden\" NAME=\"search_field\" VALUE=\"$search_field\">\n";


######## Display ROWS ############
foreach $record (@results){
 ($key,$dbuser,$when_added,@field_vals) = split(/\|/, $record); 
print<<HTML;
 <P><TABLE BORDER=0 CELLSPACING=2 CELLPADDING=2 WIDTH=$record_width BGCOLOR=#eeeeee>
HTML

$modify_button ="<INPUT TYPE=button onClick=\" myForm.key.value='$key';myForm.search_field.value='all';myForm.action.value='Modifica_item';this.form.submit( );\" VALUE=\"Apri Scheda\" >";
$view_button ="<INPUT TYPE=button onClick=\" myForm.key.value='$key';myForm.search_field.value='all';myForm.action.value='Vedi_item';this.form.submit( );\" VALUE=\"Vedi Scheda\" >";


################ COMPACT Record logic ####################################
$x=0;
# assign only relevant values for COMPACT Record #
# assign the relevant values of each field in the record
$x=0;
foreach $field (@fields){
 ${$field} = $field_vals[$x];
 $x++;
} 
$img_file =$ICONOGRAFIA_file_web; 
# End of foreach assign field loop.

if($choose =~ /(modify|delete)/){
 print "
 <TR BGCOLOR=\"\#e0e0e0\">
 <TD ALIGN=left COLSPAN=2>
 $TAXONOMY_filesystem_path
 </TD>
 </TR>
 <TR BGCOLOR=\"\#e0e0e0\">
 <TD ALIGN=CENTER COLSPAN=2>
 $modify_button
 <INPUT TYPE=button onClick=\" myForm.key.value='$key';myForm.search_field.value='all';myForm.action.value='Delete Record';this.form.submit( );\" VALUE=\"Elimina Scheda\" >
 </TD>
 </TR>
 <td>";
}

$popup_image = "<a href=\"javascript:openphotos('../$folder_/$img_file', 'thor', '500', '600');\">
 <img src=../$folder_/$img_file align=left height=112 border=0></a>";





$popup_URL = "<a href=\"../$PAGE_URL\"> <img src=../$folder_/$img_file align=left height=112 border=0></a>";

$HTML_line .= $popup_URL;
$HTML_line .= '<b>' . $TAXONOMY_page_title . '</b>, ' . ', ' . $TAXONOMY_subtitle;
$HTML_line .= '<br><br><br><br>' . $PAGE_URL;

$HTML_line .= '<br><br>last update: '. $Data_Ora . ' <br>';

$update_URL = "$server"."$script_name?operation=edit_record&find_=$key"; 
$HTML_line .= "<a href=\"$update_URL\" title=\"Extranet backdoor\"> <img src=\"$image_path/extranet.gif\" border='0' alt='Extranet backdoor' vspace='8'></a>";

$HTML_line =~ s/\s+/ /g; # substitute spaces to the single blank character

print "$HTML_line<hr></TABLE><P>";
################ end of COMPACT Record logic ################## 

 $HTML_line = " ";
 } # End of foreach record loop.
 

$which_search = $choose;
if ($rows_left_to_view > 0 && $show ne "no") {
     &next_page_buttons($rows_left_to_view);
}
 print "<p>";
 &html_footer;
} ### End of search_results












################ Advanced_search ##################
sub advanced_search {
if ($action eq 'Avanti') { &print_add_screen;exit;};
&html_header;
 print<<HTML;
 <TABLE BORDER=0 CELLSPACING="0" CELLPADDING="3"><TR><TD COLSPAN=3><B>Trova:</B><BR>
<INPUT TYPE="text" NAME="search_for" SIZE="40" 
onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13))
 {myForm.action.value='search compact';this.form.submit( );return false;} 
else return true;" >
<INPUT TYPE=button onClick="myForm.action.value='search compact';this.form.submit( );" VALUE="Cerca" >
</TD>
 </TR><TR> 
 <TD><B>Cerca solo nel campo:</B><BR>
<select NAME="search_field">
<OPTION VALUE="all">All 
<OPTION VALUE=1 >img_file
<OPTION VALUE=2 >ITEM_number
<OPTION VALUE=3 >TAXONOMY_page_title
<OPTION VALUE=4 >TAXONOMY_subtitle
</SELECT>
</TD>
<TD><B>Ordina per:</B><BR>
<select NAME="sort_on">
<OPTION VALUE=1 >img_file
<OPTION VALUE=2 >ITEM_number
<OPTION VALUE=3 >TAXONOMY_page_title
<OPTION VALUE=4 >TAXONOMY_subtitle
</SELECT></TD>
<TD><B>Visualizza:</B><BR><SELECT NAME="display">
<OPTION VALUE="rows">Schede
<OPTION VALUE="columns">Tabellone
</SELECT>
</TD></TR></TABLE>
<input name="archive_mode" value="principale" type="hidden">
HTML

print<<HTML;
 <BR></TD></TR>
 <TR> 
<TD BGCOLOR="#e0e0e0"><CENTER> 
<INPUT TYPE=button onClick="myForm.action.value='nuova_scheda';this.form.submit( );" VALUE="Nuova scheda" >

<INPUT TYPE=button onClick=" myForm.action.value='Logout';this.form.submit( );" VALUE="Logout" >
<input type=hidden name="user_search" value="">
<input type=hidden name="user_add" value="">
<input type=hidden name="user_modify" value="">
<input type=hidden name="user_delete" value="">
<INPUT TYPE="hidden" NAME="user" VALUE="$user">
<input type=hidden name="user_trans" value="">
<INPUT TYPE="hidden" NAME="$authenticate" VALUE="yes">
<INPUT TYPE="hidden" NAME="message" VALUE=''>
</CENTER>
</TD>
</TR>
</TABLE><P>
<center>
HTML
if ($user eq "$admin_user_name" && $authenticate eq "yes") { 
	print<<HTML;
	<INPUT TYPE=button onClick="myForm.action.value='User Manager';this.form.submit( );" VALUE="User Manager" >
HTML
};

print<<HTML;
</center>
<p>
<form name="myForm2">
<input type="hidden" value="Write" onClick="document.myForm.elements[0].focus(); "> 
</form>
HTML
print $copyright_note;
} # End of Advanced_search subroutine.



################### Unwrap ####################
sub unwrap{
 $temp = $_[0];
 $temp =~ s/<br>/\r\n/ig;
 
 $temp =~ s/\&agrave\;/à/g;;
 $temp =~ s/\&eacute\;/é/g;
 $temp =~ s/\&egrave\;/è/g;
 $temp =~ s/\&igrave\;/ì/g;
 $temp =~ s/\&ccedil\;/ç/g;
 $temp =~ s/\&ograve\;/ò/g;
 $temp =~ s/\&ugrave\;/ù/g;
 $temp =~ s/\&Agrave\;/à/g;;
 $temp =~ s/\&Eacute\;/É/g;
 $temp =~ s/\&Egrave\;/È/g;
 $temp =~ s/\&Igrave\;/Ì/g;
 $temp =~ s/\&Ccedil\;/Ç/g;
 $temp =~ s/\&Ograve\;/Ò/g;
 $temp =~ s/\&Ugrave\;/Ù/g;
 $temp =~ s/\&euro\;//g;
 $temp =~ s/\&sect\;/§/g;
 $temp =~ s/\&copy\;/©/g;
 
 $temp =~ s/\|//g;
 return ($temp);
}
############# end of Unwrap ####################




############## ROUTINE > merge_print #############################
# displays the RTF(doc) template file with the correct variable values
###################################################################
sub merge_print
{ 
 ($key,$dbuser,$when_added,@field_vals) = split(/\|/, $results[0]); 

$input_file = "$root_/$folder_/certificato_neutrale.rtf"; 
open (INPUT,"< $input_file") or die "Where is certificato_neutrale.rtf input file? ($!)";
@rtf_file_lines = <INPUT>;
close (INPUT);

$n_rtf_file_lines = @rtf_file_lines;
#print "n_rtf_file_lines: $n_rtf_file_lines\n\n";

$output_file = "$root_/$folder_/certificato_.rtf"; 
flock OUTPUT, $EXCLUSIVE;
open (OUTPUT, ">$output_file") or die "Error opening file: $!\n";
foreach $line (@rtf_file_lines){
	# assign the relevant values to COMPACT Record AND SUBSTITUTE $string with the actual $values
	$x=0;
	$line =~ s/\$/ /g;
	foreach $field (@fields){
 $item = $field_vals[$x];
 ${$field} = $item; 
 $line =~ s/$field/$item/g; # SUBSTITUTE each string_pattern with its actual $value 
 $x++;
 }
 # End of foreach assign field loop.
 $datum = &pick_datum;
 $line =~ s/data_/$datum/g;
 print OUTPUT $line; # create the document on the fly
}
close(OUTPUT);
flock OUTPUT, $UNLOCK;


########### LETTERA ########################################

$input_file = "$root_/$folder_/lettera_neutrale.rtf"; 
open (INPUT,"< $input_file") or die "Where is lettera_neutrale.rtf input file? ($!)";
@rtf_file_lines = <INPUT>;
close (INPUT);

$n_rtf_file_lines = @rtf_file_lines;
#print "n_rtf_file_lines: $n_rtf_file_lines\n\n";

$output_file = "$root_/$folder_/lettera_.rtf"; 
flock OUTPUT, $EXCLUSIVE;
open (OUTPUT, ">$output_file") or die "Error opening file: $!\n";
foreach $line (@rtf_file_lines){
	# assign the relevant values to COMPACT Record AND SUBSTITUTE $string with the actual $values
	$x=0;
	$line =~ s/\$/ /g;
	foreach $field (@fields){
 $item = $field_vals[$x];
 ${$field} = $item; 
 $line =~ s/$field/$item/g; # SUBSTITUTE each string_pattern with its actual $value 
 $x++;
 }
 # End of foreach assign field loop.
 $datum = &pick_datum;
 $line =~ s/data_/$datum/g;
 print OUTPUT $line; # create the document on the fly
}
close(OUTPUT);
flock OUTPUT, $UNLOCK;

} 
# end of routine - merge_print ####################################


##########################
# ROUTINE > OPEN FILE #
##########################
sub Open_File
{
 # assign input parametres
 $FileName = $_[0];
 $FileModo = $_[1];
 $PerlFile = $_[2];
 $StringaFile = $FileModo.$FileName;
 unless (open($PerlFile, "$StringaFile"))
 {
 if (!(-e "$FileName"))
  { die ("File $FileName does not exist.\n"); }
 elsif (!(-r "$FileName"))
 
  { die ("You are not allowed to read $FileName.\n"); }
 else
  { die ("$FileName cannot be opened or create\n"); }
 }
}

###########################
#| end of OPEN FILE ROUTINE
###########################

############### Documents Screen ################
sub print_documents_page{
&merge_print;
$title="Documents Screen";
&html_header($title);
print "<a href=\"$image_path/lettera_.rtf\">Lettera</a><br><br>";
print "<a href=\"$image_path/certificato_.rtf\">Certificato di Possesso</a><br><br>";
&html_footer;
}
############# end of Documents Screen ################


################### Filter ####################
sub filter{
my $temp = $_[0];


# $temp =~ s/\Č/\&\#268\;/g;
# $temp =~ s/\č/\&\#269\;/g;
# $temp =~ s/\Š/\&\#352\;/g;
# $temp =~ s/\š/\&\#353\;/g;
 $temp =~ s/\Ž/\&\#381\;/g;
 $temp =~ s/\ž/\&\#382\;/g;
# $temp =~ s/\'/\&\#0039\;/g;
 $temp =~ s/\(/\&\#0040\;/g;
 $temp =~ s/\)/\&\#0041\;/g;
 $temp =~ s/\*/\&\#0042\;/g;
 $temp =~ s/\+/\&\#0043\;/g;
# $temp =~ s/\,/\&\#0044\;/g;
# $temp =~ s/\-/\&\#0045\;/g;
# $temp =~ s/\./\&\#0046\;/g;
# $temp =~ s/\:/\&\#0058\;/g;
# $temp =~ s/\;/\&\#0059\;/g;
# $temp =~ s/\=/\&\#0061\;/g;
# $temp =~ s/\>/\&\#0062\;/g;
 $temp =~ s/\?/\&\#0063\;/g;
# $temp =~ s/\@/\&\#0064\;/g;
 $temp =~ s/\[/\&\#0091\;/g;
 $temp =~ s/\\/\&\#0092\;/g;
 $temp =~ s/\]/\&\#0093\;/g;
 $temp =~ s/\^/\&\#0094\;/g;
# $temp =~ s/\_/\&\#0095\;/g; 
 $temp =~ s/\`/\&\#0096\;/g; 
# $temp =~ s/\{/\&\#00123\;/g; 
 $temp =~ s/\|/\&\#00124\;/g; 
# $temp =~ s/\}/\&\#00125\;/g; 

 $temp =~ s/à/\&agrave\;/g;;
 $temp =~ s/é/\&eacute\;/g;
 $temp =~ s/è/\&egrave\;/g;
 $temp =~ s/ì/\&igrave\;/g;
 $temp =~ s/ç/\&ccedil\;/g;
 $temp =~ s/ò/\&ograve\;/g;
 $temp =~ s/ù/\&ugrave\;/g;
 $temp =~ s/à/\&Agrave\;/g;;
 $temp =~ s/É/\&Eacute\;/g;
 $temp =~ s/È/\&Egrave\;/g;
 $temp =~ s/Ì/\&Igrave\;/g;
 $temp =~ s/Ç/\&Ccedil\;/g;
 $temp =~ s/Ò/\&Ograve\;/g;
 $temp =~ s/Ù/\&Ugrave\;/g;
# $temp =~ s//\&euro\;/g;
 $temp =~ s/§/\&sect\;/g;
 $temp =~ s/©/\&copy\;/g;
 
 $temp =~ s/\'/\&\#0039\;/g;
 $temp =~ s/°/\&deg\;/g;
 
 $temp =~ s/\n/<br>/g;
 $temp =~ s/\r/<br>/g;
 $temp =~ s/<br><br>/<br>/g;
# $quote = "&quot;";
# $temp =~ s/\"/$quote/g;
 $temp =~ s/\s+/ /g;
 $temp =~ s/ \./\./g;
 $temp =~ s/ \,/\,/g;
 $temp =~ s/\'//g;
 
 foreach $removed (@filter) { $temp =~ s/$removed/\?\$\%\&/gi; }
 if ($filter_html_tags eq "yes") { $temp =~ s/<[^>]*>//gs; }
 return ($temp);
}
############# end of Filter ####################


 


############### UPLOAD Screen 1/2 ################
sub print_upload_1y_page{
$title="File Upload 1/2 ... Symphony";
$action="upload_2y";
if($set_cookie eq "") { print $q->header; }
print<<BODY;
<HTML><HEAD>
 <TITLE>$db_name - $_[0]</TITLE>
 <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
 </HEAD>
<BODY BGCOLOR="#FFFFFF">
 <script type="text/javascript" src="$image_path/js/global.js"></script>	
	<script type="text/javascript" src="$image_path/js/style.js"></script>
 <CENTER>
 $db_name
 <CENTER>
 <TABLE BORDER=1 WIDTH="$table_width" CELLSPACING="0" CELLPADDING="3">
 <TR> 
 <TD BGCOLOR="#e0e0e0"> 
 <CENTER> 
 <B>$title</B>
 </CENTER>
 </TD>
 </TR>
 <TR> 
 <TD align=middle><BR>

<FORM enctype="multipart/form-data" METHOD="post" ACTION="$upload_y_URL">

<center>

<INPUT TYPE='file' NAME='photo_item' size='80'><br>
<INPUT TYPE='submit' NAME='Submit' VALUE='UPLOAD file'>
</center>

 <BR></TD></TR>
 <TR> 
 <TD BGCOLOR="#e0e0e0"><CENTER> 
All rights reserved. 1st Muse Co
<input type=hidden name="user_search" value="">
<input type=hidden name="user_add" value="">
<input type=hidden name="user_modify" value="">
<input type=hidden name="user_delete" value="">
<INPUT TYPE="hidden" NAME="user" VALUE="">
<input type=hidden name="user_trans" value="">
<INPUT TYPE="hidden" NAME="authenticate" VALUE="yes">
<INPUT TYPE="hidden" NAME="message" VALUE=''>
 </CENTER>
 </TD>
 </TR>
</TABLE><P>
<center><p>All rights reserved. <a href="http://www.1stmuse.com">1stMuse</a><br>&copy; MMX 1stMuse &copy; MMX JJP<br><br></center><form name="myForm2">

<input type="hidden" value="Write" onClick="document.myForm.elements[0].focus(); "> 
</form>
</BODY></HTML>

BODY

}
############# end of UPLOAD Screen 1/2 ################




############### UPLOAD Screen 1/2 ################
sub print_upload_1x_page{
$title="File Upload 1/2 ... Symphony";
$action="upload_2x";
if($set_cookie eq "") { print $q->header; }
 my $anno = $_[0];
 $prefix = $anno;

 
 $path_ = "$root_/adonis";
 $zy_name = "$path_/".$prefix ."a".$sufix."\.jpg"; 
 $zy_file = $prefix ."a".$sufix."\.jpg"; 
print<<BODY;
<HTML><HEAD>
 <TITLE>$db_name - $_[0]</TITLE>
 </HEAD><BODY BGCOLOR="#FFFFFF">
 <script type="text/javascript" src="$image_path/js/global.js"></script>	
	<script type="text/javascript" src="$image_path/js/style.js"></script>
 <script type="text/javascript" src="$image_path/js/transfer_value.js"></script>
 <CENTER>
 $db_name
 <CENTER>
 <TABLE BORDER=1 WIDTH="$table_width" CELLSPACING="0" CELLPADDING="3">
 <TR> 
 <TD BGCOLOR="#e0e0e0"> 
 <CENTER> 
 <B>$title</B>
 </CENTER>
 </TD>
 </TR>
 <TR> 
 <TD align=middle><BR>

<FORM enctype="multipart/form-data" NAME="upload_1x" METHOD="post" ACTION="$upload_y_URL">

Server file - naming convention: <b> anno</b> $anno

<center>
<input type="file" name="myfile" accept="text/*" maxlength="2097152" size="80"><br>
<INPUT TYPE='submit' NAME='Submit' VALUE='UPLOAD file'>
</center>

 <BR></TD></TR>
 <TR> 
 <TD BGCOLOR="#e0e0e0"><CENTER> 
All rights reserved. 1stMuse Co
<input type=hidden name="user_search" value="">
<input type=hidden name="user_add" value="">
<input type=hidden name="user_modify" value="">
<input type=hidden name="user_delete" value="">
<INPUT TYPE="hidden" NAME="user" VALUE="">
<input type=hidden name="user_trans" value="">
<INPUT TYPE="hidden" NAME="authenticate" VALUE="yes">
<INPUT TYPE="hidden" NAME="message" VALUE=''>
<INPUT TYPE="hidden" NAME="file_name_convention" VALUE='Zy009876.jpg'>
 </CENTER>
 </TD>
 </TR>
</TABLE><P>
<center><p>All rights reserved. <a href="http://www.1stmuse.com">1stMuse</a><br>&copy; MMX 1stMuse &copy; MMX JJP<br><br></center>

</BODY></HTML>

BODY

}
############# end of UPLOAD Screen 1/2 ################





############## HTML upload Header #################

sub html_upload_header{
if($set_cookie eq "") { print $q->header; }
$set_cookie = "";
if($use_external_html eq "yes") { 
%external_variables = (title=>$title, message=>$message,);
print html_template("$external_html_header", \%external_variables); 
&form_header;
} else {
 print<<HTML;
<HTML><HEAD>
 <TITLE>$db_name - $_[0]</TITLE>
 </HEAD><BODY BGCOLOR="#FFFFFF">
 <script type="text/javascript" src="$image_path/js/global.js"></script>	
	<script type="text/javascript" src="$image_path/js/style.js"></script>
 <CENTER><B>
 $db_name
 </B><p><FONT SIZE=3 FACE="ARIAL" COLOR=RED><B>$_[1]</B></FONT></CENTER><P>
 <CENTER>
 <TABLE BORDER=1 WIDTH="$table_width" CELLSPACING="0" CELLPADDING="3">
 <TR> 
 <TD BGCOLOR="#e0e0e0"> 
 <CENTER> 
 <B>$_[0]</B>
 </CENTER>
 </TD>
 </TR>
 <TR> 
 <TD align=middle><BR>

<FORM enctype="multipart/form-data" METHOD="post" ACTION="$upload_2_URL">
HTML

}
}

############## end of HTML upload Header #################



sub myerr {
 print "Error: \n";
 print @ERRORS;
 exit 0;
}






















############### backup_adonis ################
sub backup_adonis{
# Author : John Jan Popovic
# Date : July, 
# Purpose: This procedure performs DBase adonis Backup



# Create %adonis_hash
 %DBADONIS_hash = ();
 @DB_line = ();
 $homedir = $root_ ;
 $database= "$homedir/$folder_/adonis_.txt"; 
 open (DB, "$database") || die "Error opening database. $! $database \n";
 @DB_line = <DB>;
 close (DB);

foreach $adonis_record (@DB_line){
   chomp $adonis_record;
   @altro =();
  ($key,$dbuser,$when_added,@altro) = split(/\|/, $adonis_record);
  $DBADONIS_hash{$key} = $adonis_record;
} ;
# end of creating of %adonis_hash

 $date_time = &get_date;
 $date_time =~ s/at/~/g;
 ($date,$day_time) = split (/\~/,$date_time);
 $date =~ s/[\s]//g;
 $date =~ s/[\/]/~/g;
 ($mm,$dd,$yy) = split (/\~/,$date);
 $backupdb = $root_ . "/backup/archivio_adonis" . "$yy$mm" ."_$dd" . ".txt";



  # backup ADONIS records
 flock DATABASE, $EXCLUSIVE;
 open (DATABASE, ">$backupdb") or die "Error opening file: $!\n";

  foreach $adonis_line (@ADONIS_line){ 
    chomp $adonis_line;
    print DATABASE "$adonis_line\n";
  }

  close (DATABASE);
  flock DATABASE, $UNLOCK;
  # end of saving ADONIS backup records

  # save ADONIS records
  @ADONIS_line = ();
  @ADONIS_line = values (%DBADONIS_hash);

 flock DATABASE, $EXCLUSIVE;
 open (DATABASE, ">$database") or die "Error opening file: $!\n";

  foreach $adonis_line (@ADONIS_line){ 
    chomp $adonis_line;
    print DATABASE "$adonis_line\n";
  }

  close (DATABASE);
  flock DATABASE, $UNLOCK;
  # end of saving ADONIS db records



} # End of Backup_adonis subroutine.






########### Load_DBASE CAMPI #######
# Purpose Load database adonis
sub Load_DBASE_adonis{
 
 @DB_line = ();
 $homedir = $root_ ;
 $database= "$homedir/$folder_/adonis_.txt"; 

 open (DB, "$database") || die "Error opening database. $! $database \n";
 @DB_line = <DB>;
 close (DB);

} # End of Load_DBASE subroutine.





















sub copy {
# copy("/folder1/abc.dat", "/folder2/abc.dat") or die("cannot copy\b");
my($from, $to) = @_;
 if(open(IN, $from))
 { if(open(OUT, ">$to")) {
 	 binmode(OUT); 
 	 while(read IN, $buf, 4096)
 { print OUT $buf;
 }
 close IN;
 close OUT;
 return 1;
 }
 close IN;
 }
 

 return 0;
}







############### UPLOAD Screen 2/2 ################
sub upload_2y{
$upload_path = "$root_/$folder_/";
$url_path ="$image_path/js";

#**************************************
# Description: upload a binary file
#
#**************************************
 
###	NOTE: if you want to to do textfile uploading, just remove all the binmode() functions and that's it!
###	Set Maximum Upload size to 2MB (prevent from uploading extremely large files or other such malicious stuff)
$CGI::POST_MAX = 4048;

###	Print HTML file header
print "content-type: text/html\n\n";
print<<HTML;
<html>
<HEAD>
 <TITLE>Upload Screen 2/2</TITLE>
 </HEAD>
<body bgcolor="#ffffff">
 	<script type="text/javascript" src="$url_path/global.js"></script>	
	<script type="text/javascript" src="$url_path/style.js"></script>

<script type="text/javascript">

 function ValueTransfer(f) {
	 self.opener.document.myForm.ICONOGRAFIA_file_web.value = f;
	}
	
</script>
FILE UPLOAD ...
HTML
###	end of HTML file header


### IMPORTANT: Set Standard Input to Binary Mode -- this is critical for binary data, like images
binmode(STDIN); #	NOTE: if you want to to do textfile uploading, just remove all the binmode() functions and that's it!
@upload_stream = <STDIN>;

###	pick up from from the array: @input_stream the $upload_file_data
$upload_file_data = @upload_stream[1];
@input_stream =@upload_stream;
###	pick up from from the $upload_file_data the correct $file_name
### this works well if the image file was upoaded from MS Windows systems
($a0, $variable_name, $file_path) = split(/\;/, $upload_file_data);
$original_path = $file_path;
$file_path =~ s/\"//g; # - substitute quotation charater to nil
$file_path =~ s/\\/\;/g; # - substitute backslash to semicolon
$file_path =~ s/\//\;/g; # - substitute slash to semicolon
@path_elements = split (/\;/, $file_path);
### file name is the last of all path_elements
$file_name_index = $#path_elements;
$file_name = @path_elements[$file_name_index];
$file_name =~ s/filename=//g; # - substitute "filename=" string to nil
$file_name =~ s/\=//g; # - substitute "=" string to nil
$file_name =~ s/[\|\£\$\%\&\)\(\?\^\*\§\=\'\@\",\-\s+]/_/g; # - substitute whitespace(s) & other strange characters to underscore
$file_name =~s/..$//; # - trimming last two characters 
$file_name =~s/^_//; # - trimming leading underscore
$file_slika = $file_name;


###	This is just for a single file upload; you can improve the code to include boundary separations and stuff like that..
###	These two lines delete the boundary and file info which comes with the formfeed and leaves only the binary data
###	First line : removes initial 4 elements from the array: @input_stream.
###	Second line : removes last element from the array: @input_stream.
splice(@input_stream,0,4);
splice(@input_stream,$#input_stream ,1);

$in = join("",@input_stream );
$in = substr($in,0,length($in) - 2);;
###	This next sniplet assumes you are uploading a JPEG file and saves it as $file_name in the $upload_path folder
###	You can also further improve the script by retreiving the filename from the 'spliced' lines
$image_file = $upload_path . $file_name;
open(ff,">$image_file");
###	Set file output to binary mode (since you're assuming to write a binary file)
binmode(ff);
print ff $in;
close(ff);

## response
print "terminato con successo. <br> Uploaded Size: ".length($in)." bytes "."<br>file_path: ".$original_path."<br>file_name: ".$file_name;

print<<HTML;

<form name=Transfer><br> Uploaded file:
<input name="file_name" type="text" size="24" maxlength="24" value="$file_name" readonly onChange="ValueTransfer(this.value)" onfocus="ValueTransfer(this.value)" >
<br> 	 
<INPUT onclick="ValueTransfer('$file_name');window.close()"; TYPE="button" VALUE="Confirm file name"> 
</form>
</body></html>
HTML
}
# end of upload script
############### end of UPLOAD Screen 2/2 ################




































































############### View Proposal Screen ################
sub print_layout_page{
#	View Proposal Screen
#	and publish the corresponding static web page

 ($key,$dbuser,$when_added,@field_vals) = split(/\|/, $results[0]); 

my @category_vox = ();



# assign the values to the variables of each field in the record
$x=0;
foreach $field (@fields){
 ${$field} = &unwrap($field_vals[$x]);
 $item = ${$field};
 $item = filter($item);
 ${$field} = $item;
 $x++;
} 
$img_file =$ICONOGRAFIA_file_web; 
# End of foreach assign field loop.

$rendering_COMPLEX ="$rendering_mode~";
($rendering_mode,$disqus_mode,@altro ) =split(/\~/,$rendering_COMPLEX);
$rendering_mode = "classic" if($rendering_mode eq "");
$disqus_mode = "absent" if($disqus_mode eq "");

$TAXONOMY_cathegories =~ s/\<br\>/\~/g; # break to tilde
$TAXONOMY_cathegories_broken = $TAXONOMY_cathegories;
$TAXONOMY_cathegories_broken =~ s/\~/\<br\>/g; # tilde_to_break

$readonly ="";
(@img) = split (/\,/,$ICONOGRAFIA_gallery);
$path_elements = $TAXONOMY_filesystem_path;
$path_elements =~ s/\s//g; # remove spaces
$gt_ ='&#0062;';
$path_elements =~ s/$gt_/\*/g;
$path_elements =~ s/\>/\*/g;
$path_elements =~ tr/[A-Z]/[a-z]/; #Change everything to lower case

my @path_=();
@path_= split (/\*/,$path_elements);
$nn=@path_;
for($ii=0; $ii<=$nn; $ii++ ) {
	@path_[$ii] =~ s/\W/_/g;
}


my $home = $root_ . "/@path_[0]";
 $name_element1=@path_[1];
 $name_element2=@path_[2];
 $test_file_name = "$home/test.txt";
 
 if (open (TEST, "+>$test_file_name")){
 $err=0;
 close (TEST);
 } else {
 mkdir ($home, 0777);
 }
 
 $basic_name = $name_element1 . $name_element2;
 $basic_name =~ s/\W/_/gi;
 $file_name = $basic_name . ".html";
 $web_file_name = "$home/$basic_name/index.html";
 $url_folder = "@path_[0]/$basic_name";


 
### create slideshow swf control files 
 $page_media_folder = "$home/$basic_name";
 $media_folder = "./$basic_name";
 $page_media_file1 = "$page_media_folder/" . "../../images.xml";
 
 if (open (MEDIA1, "+>$page_media_file1")){
 $err=0;
 } else {
 mkdir ($page_media_folder, 0777);
 }
 
$update_URL = "$server"."$script_name?operation=edit_record&find_=$key"; 
$aggiornamento = "<a href=\"$update_URL\" title=\"Extranet backdoor\"> <img src=\"$image_path/extranet.gif\" border='0' alt='Extranet backdoor' vspace='8'></a>";


$displayed_content = filter($PAGE_content);
$displayed_content =~ s/\<br\>/\<br\>\n/g;

### end of preparation
 
 
 if (open (HTML, "+>$web_file_name")){
 $err=0;
 } else {
 mkdir ($home, 0777);
 }
 
 open (HTML, "+>$web_file_name") or "Error creating HTML $web_file_name $!\n";
 binmode HTML;


	 $count_changes = chmod 0755, $web_file_name;

 if ($count_changes == 1){
 $err=0;
 } else {
 print "The mode 755 has NOT been successfully applied to the files ! \n";
 }



$margin =0;
$header_menu = qq||;
$logo = qq|<a href="$web_site"><img src="../../adonis_section/logo_icon.gif" border="0" ></a>|; 
 	 
 if ($header_type =~ /menu/ ) {
 $logo = qq||;
 	 $header_menu = qq|include("adonis_header.html"); |; 
 };

$metacategoria_normalised = $TAXONOMY_metacathegory;
$metacategoria_normalised =~ s/\s//g;
$metacategoria_normalised =lc($metacategoria_normalised);

(@category_vox) = split(/\~/,$TAXONOMY_cathegories); 
$n_cathegories = @category_vox;


$DISQUS_SCRIPT = qq~
<div id="disqus_thread"></div>
<script type="text/javascript">

    var disqus_identifier=0;  //[Optional but recommended: Define a unique identifier (e.g. post id or slug) for this thread] 

  (function() {
   var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
   dsq.src = 'http://1stmuse.disqus.com/embed.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript=1stmuse">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
~;



$top_right_text =$TAXONOMY_breadcrumbs;
if ($TAXONOMY_breadcrumbs eq "") {$top_right_text =$TAXONOMY_metacathegory;}

$WEB_PAGE = qq~
<HTML>
<head>
<LINK REL="SHORTCUT ICON" HREF="./favicon.ico">
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<meta name="Keywords" content="Loyalty cards and services">
<meta name="description" content="FIDO sustav omogućuje fleksibilno kreiranje programa lojalnosti prema poslovnim modelima trgovaca, te povećanje broja klijenata i njihove lojalnosti, bolje razumijevanje potrošačkih navika klijenata i njihovih potreba.">

<script type="text/JavaScript">
<!--
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script>
<link rel="stylesheet" type="text/css" href="fadeSlideShow.css" />
<script type="text/javascript" src="fadeSlideShow.js"></script>
<script type="text/javascript">
$(document).ready(function(){
		$('#slideshow').fadeSlideShow({
		PlayPauseElement: false,
		NextElement: false,
		PrevElement: false,
		ListElement: false
	});
	});
</script>
	
</head>

<BODY onLoad="init();MM_preloadImages('../../images/shared/tvrtka_on.gif','../../images/shared/servisi_on.gif','../../images/shared/kartice_on.gif','../../images/shared/paketi_on.gif')" leftmargin="0" topmargin="0">
<title>Etranet Loyalty:: $TAXONOMY_metacathegory. $TAXONOMY_page_title</title>
<script>

<!--
//INFORMS DYNAMIC MENUS WHICH SECTION IS CURRENTLY ON	
var currentSection = '/index.html'; 
// -->
</script>	
<script language="JavaScript" type="text/javascript" src="http://loyalty.hr/js/global.js"></script>	
<script language="JavaScript" type="text/javascript" src="http://loyalty.hr/js/style.js"></script>	
<script language="JavaScript" type="text/javascript" src="http://loyalty.hr/js/menu_array.js"></script>
<script language="JavaScript" type="text/javascript" src="http://loyalty.hr/js/topmenu.js"></script>

<SCRIPT LANGUAGE = "JavaScript">
<!--


function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

writenavMenus();
writeCSS(CSSstring,false);
writeChildMenus();


// -->
</script>
<table width="1197"  border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr> 
<td width="458" rowspan="2" align="left"  bgcolor="#000066" ><a href="./index.html"><img src="../../images/loyalty_logo_inverse.gif" width="458" height="108" border="0"></a></td>
  <td height="38"  colspan="5" bgcolor="#000099"><img src="../../images/top_slogan_inverse.gif" width="740" height="60"></td>
</tr>
<tr> 
<td width="148"   height="49"  bgcolor="#CCCCCC"><a onMouseOut="MM_swapImgRestore()" onMouseOver="onParent(0,true);MM_swapImage('servisi','','../../images/shared/servisi_on.gif',0);" href="servisi_.html"><img src="../../images/shared/servisi_off.gif" width="148" height="49" border="0" alt="servisi" name="servisi"></a></td>
<td width="148" height="49"  bgcolor="#CCCCCC"><a onMouseOut="MM_swapImgRestore()" onMouseOver="onParent(1,true);MM_swapImage('kartice','','../../images/shared/kartice_on.gif',0);" href="kartice_.html"><img src="../../images/shared/kartice_off.gif" width="148" height="49" border="0" alt="kartice" name="kartice"></a></td>
<td width="148" height="49" bgcolor="#CCCCCC"><a onMouseOut="MM_swapImgRestore()" onMouseOver="onParent(2,true);MM_swapImage('paketi','','../../images/shared/paketi_on.gif',0);" href="paketi_.html"><img src="../../images/shared/paketi_off.gif" alt="paketi" name="paketi" width="148" height="49" border="0" align="bottom" id="paketi"></a></td>
<td width="148"  height="49"  bgcolor="#CCCCCC"><a onMouseOut="MM_swapImgRestore()" onMouseOver="onParent(3,true);MM_swapImage('tvrtka','','../../images/shared/tvrtka_on.gif',0);" href="tvrtka_.html"><img src="../../images/shared/tvrtka_off.gif" alt="tvrtka" name="tvrtka" width="148" height="49" border="0" align="bottom" id="tvrtka"></a></td>
<td width="148"  align="right" background="../../images/deep_blue.gif" bgcolor="1c3e85" class="textgray"><img src="../../images/shared/white_arrow.gif" width="9" height="5" border="0" hspace="5" alt=""><a href="http://www.loyalty.hr/loyalty_english.html" class="textgray"><a href="http://www.loyalty.hr/index_english.html" class="textgray">&nbsp;English</a> &nbsp;&nbsp;</td>
</tr>
<tr  >
  <td height="427" colspan="6" align="left" valign="top" background="../../images/bg1.jpg"><table width="100%" height="81" border="0" cellpadding="4">
    <tr>
      <td colspan="3" height="16">&nbsp;</td>
      </tr>
    <tr>
      <td width="18%" valign="top">&nbsp;</td>
      <td width="58%" bgcolor="#FFFFFF"><table width="737" height="158" border="0" cellpadding="0" cellspacing="0" align="left">
        <tr>
          <td width="35" bgcolor="#FFFFFF"><br>
              <br>
              <br></td>
          <td width="702" bgcolor="#FFFFFF"><b><img src="./images/shared/case_study_arrow_box.gif" alt="if you are contacting us first time" border="0" height="11" vspace="1" width="13"> Etranet loyalty solutions </b></td>
          </tr>
          <tr>
            <td bgcolor="#FFFFFF">&nbsp;</td>
            <td bgcolor="#FFFFFF"> <br>
              <img src="./images/shared/blue_arrow.gif" border="0" height="5" hspace="2" width="9"> 
$displayed_content
<br><br>

			  <br>
              <br></td>
          </tr>
        </tbody>
        </table>
</td>
      <td width="24%">&nbsp;</td>
    </tr>
  </table>	
</td>
</tr>
<tr>
  <td colspan="1" height="49" align="left" bgcolor="#FFFFFF" background="../../images/deep_blue.gif">    </td>
 <td width="148"  background="../../images/deep_blue.gif">$aggiornamento</td>
 <td width="148"  background="../../images/deep_blue.gif"><span class="textblue"><a href="javascript:popWindow('./privacy.html',600,600,'office','scrollbars=yes,resize=no');" class="textblue">Privacy Policy</a><br>
              </td>
 <td colspan="3"  background="../../images/deep_blue.gif" class="textblue"><a href="javascript:popWindow('./legal.html',600,600,'office','scrollbars=yes,resize=no');" class="textblue">   Legal Notices</a><br>
              </td>
	</tr>
</tbody>
</table>
</BODY>
</HTML>

~;


$TAXONOMY_cathegory =~ s/^\s+//; # - trimming leading whitespace
$TAXONOMY_cathegory =~ s/\s+$//; # - trimming trailing whitespace









# rendering choice
$CLASSIC_WEB_PAGE = qq~<img src="../../adonis/$img[0]" border="0" vspace="3" width="450">~;

if ($img[0] eq '') {	$CLASSIC_WEB_PAGE = '<br>';	};


$CLASSIC_BANNER = qq~<img src="../../adonis/$img[0]" border="0" vspace="3" width="700">~;

if ($rendering_mode eq "classic" ) { 
	$WEB_PAGE .= $CLASSIC_WEB_PAGE;
};



 if ($disqus_mode eq "absent" ) {
 	$DISQUS_SCRIPT = ''; 
 };
# end of rendering choice



 
 
$CONTROL_buttons = qq~
<center>
<hr>
<FORM name="myForm" METHOD="post" ACTION="$script_name">
<INPUT TYPE="hidden" NAME="action" VALUE="Main">
<INPUT TYPE=HIDDEN NAME=key value="">
<INPUT TYPE=button onClick="myForm.action.value='Main Menu';this.form.submit();" VALUE="Main Menu" >
<INPUT TYPE=button onClick="myForm.action.value='Logout';this.form.submit();" VALUE="Logout" >
<input type=hidden name="user_search" value="">
<input type=hidden name="user_add" value="">
<input type=hidden name="user_modify" value="">
<input type=hidden name="user_delete" value="">
<INPUT TYPE="hidden" NAME="user" VALUE="admin">
<input type=hidden name="user_trans" value="">
<INPUT TYPE="hidden" NAME="authenticate" VALUE="yes">
<INPUT TYPE="hidden" NAME="message" VALUE=''>


</FORM>
</CENTER>
~;





$CONTROL_PAGE_FOOTER = qq~
 <br>

 </td>
 </tr>
 <tr>
 <td colspan="2" valign="top">
 <div id="bottomnav">
 <ul>
 <li><a href="http://1stmuse.com/privacy/">Privacy Statement</a></li>
 <li><a href="http://1stmuse.com/terms/">Terms of use</a></li>
 <li>Copyright &copy; 1996&#8211;2010 Periodical Co. 1stmuse.com All rights reserved.</li>
 </ul>
 </div>
 </td>
 </tr>
 <tr>
 <td colspan="2" valign="top">

$CONTROL_buttons 

 </td>
 </tr>
</table>
</BODY> </HTML>
~;
# end of CONTROL_PAGE_FOOTER


$WEB_PAGE_0 = $WEB_PAGE;


 print HTML $WEB_PAGE_0;
 
 close (HTML);

 $WEB_PAGE =~ s/\n//g;
 $WEB_PAGE =~ s/\r//g;
 $WEB_PAGE =~ s/\s+/ /g;
 


}
############# end of VIEW Screen ################





sub jump_to_url {

 $jump_url = $web_site . $PAGE_URL;
 print "Location: $jump_url\n\n";
 
}














################ Default Screen ##################
sub print_default {

&html_header;
print<<HTML;
 <TABLE BORDER=0 CELLSPACING="0" CELLPADDING="3"><TR><TD COLSPAN=3><B>Trova:</B><BR>
<INPUT TYPE="text" NAME="search_for" SIZE="40" 
 onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {myForm.action.value='search compact';this.form.submit( );return false;} 
 else return true;" >
<INPUT TYPE=button onClick="myForm.action.value='search compact';this.form.submit( );" VALUE="trova" >
<br>
<input name="archive_mode" value="principale" type="hidden">
HTML
$DROPDOWN_MENU = qq~
<br>
 <select onchange="window.open(this.options[this.selectedIndex].value,'_top')" size="1" name="section">
 <option value="../$folder_/lettera_neutrale.doc">Lettera</option>
 <option value="../$folder_/certificato_neutrale.doc">Certificato di Possesso</option>
 <option value="../$folder_/Falso_template.doc" selected>Lettera di Diffida Falso</option>
 </select>
&nbsp;
~;


print<<HTML;
</TD>
 <TD width="213"></TD>
</TR> 

<input type=hidden NAME="search_field" VALUE="all">
<input type=hidden NAME="sort_on" VALUE="5">
<input type=hidden NAME="display" VALUE="rows">
</TABLE>

<br>
 <BR></TD></TR>
 <TR> 
<TD BGCOLOR="#e0e0e0"><CENTER> 
<INPUT TYPE=button onClick="myForm.action.value='advanced_search';this.form.submit( );" VALUE="Ricerca avanzata" >
<INPUT TYPE=button onClick="myForm.action.value='nuova_scheda';this.form.submit( );" VALUE="Nuova scheda" >

<INPUT TYPE=button onClick="myForm.action.value='Backup';this.form.submit();" VALUE="Backup" > 
<INPUT TYPE=button onClick=" myForm.action.value='Logout';this.form.submit( );" VALUE="Logout" >
<input type=hidden name="user_search" value="$user_search">
<input type=hidden name="user_add" value="$user_add">
<input type=hidden name="user_modify" value="$user_modify">
<input type=hidden name="user_delete" value="$user_delete">
<INPUT TYPE="hidden" NAME="user" VALUE="$user">
<input type=hidden name="user_trans" value="$user_trans">
<INPUT TYPE="hidden" NAME="authenticate" VALUE="$authenticate">
<INPUT TYPE="hidden" NAME="message" VALUE=''>
</CENTER>
</TD>
</TR>
</TABLE><P>
<center>
HTML

if ($user eq "$admin_user_name" && $authenticate eq "yes") { 
	print<<HTML;
	<INPUT TYPE=button onClick="myForm.action.value='User Manager';this.form.submit( );" VALUE="User Manager" >
HTML
};

print<<HTML;
</center>
<p>

<form name="myForm2">
<input type="hidden" value="Write" onClick="document.myForm.elements[0].focus(); "> 
</form>
HTML
print $copyright_note;
} # End of print_default subroutine.


########### Search & Sort Database #############
sub search_db{
 my $search_for = $_[0];
 $search_for = &filter($search_for);

 (@search_for_vals) = split(/\s+/, $search_for);
 $search_atoms =@search_for_vals;
 unless (-e $database){ open (DB, ">$database") || die "Error creating database. $!\n"; }
 else { open (DB, "$database") || die "Error opening database. $!\n"; }
 while(<DB>){
 if($search_field =~ /all/i){
 if ($search_atoms <= 1) { if(/$search_for/oi) {push @results, $_};};
 if ($search_atoms == 2) { if((/$search_for_vals[0]/oi) && (/$search_for_vals[1]/oi)) {push @results, $_};};
 if ($search_atoms == 3) { if((/$search_for_vals[0]/oi) && (/$search_for_vals[1]/oi)&& (/$search_for_vals[2]/oi)) {push @results, $_};};
 if ($search_atoms == 4) { if((/$search_for_vals[0]/oi) && (/$search_for_vals[1]/oi)&& (/$search_for_vals[2]/oi)&& (/$search_for_vals[3]/oi)) {push @results, $_};};
 if ($search_atoms >= 5) { if((/$search_for_vals[0]/oi) && (/$search_for_vals[1]/oi)&& (/$search_for_vals[2]/oi)&& (/$search_for_vals[3]/oi)&& (/$search_for_vals[4]/oi)) {push @results, $_};};
 } else {
 ($key,$dbuser,$when_added,@field_vals) = split(/\|/, $_);
 if($field_vals[$search_field] =~ /$search_for/oi){ push @results, $_};
 } # End of else.
 } # End of while.
 close (DB);
 foreach $curr (@results){
 ($key,$dbuser,$when_added,@rest) = split(/\|/, $curr);
 $max = @fields;
 $code='$record{$key} = { key => "$key", ';
 $code .='dbuser => "$dbuser", ';
 $code .='when_added => "$when_added", ';
 for($x=0;$x<$max;$x++){
 $code .= "\$fields[$x] => \"\$rest[$x]\",\n";
 } # End of for
 $code .= '};';
 eval $code;
 } # End of foreach curr
 $sort_on = "$fields[$sort]";
 @results=();
 foreach $rp (sort { $a->{$sort_on} cmp $b->{$sort_on} } values %record){
 $new_rec = $rp->{key};
 $new_rec .= "\|$rp->{dbuser}";
 $new_rec .= "\|$rp->{when_added}";
 for($x=0;$x<$max;$x++){
 $new_rec .= "\|$rp->{$fields[$x]}";
 } # End of for
 push @results, $new_rec;
 } # End of foreach
$count = @results;
if($count < 1){ 
 $message="No Matches Found For '$search_for'";
 $title="Main Menu";
 &print_default($title, $message); 
### intervention
 exit;
}
$total_row_count = @results;
if ($total_row_count > $max_rows_returned) {
$hits_seen = $q->param(new_hits_seen);
 for ($i = 1; $i <= $hits_seen; $i++)
 { $seen_row = shift (@results); }
 $length_of_database_rows = @results;
 for ($i = $length_of_database_rows-1; $i >= $max_rows_returned; $i--)
 { $extra_row = pop (@results); }
 $new_hits_seen = $hits_seen + @results; } else { $show="no"; }
} # End of search_db subroutine.












################# Add New RECORD ##################
sub print_add_screen{
$title="Aggiungere il Record di una nuova Scheda ADONIS ";

$key = time();
$dbuser="$admin_user_name";
$when_added = &get_date;

# ($key,$dbuser,$when_added,@field_vals) = split(/\|/, $results[0]); 

&html_header($title);

# assign the values to the variables of each field in the record
$x=0;
foreach $field (@fields){
 ${$field} = &unwrap($field_vals[$x]);
 $x++;
} 
$img_file =$ICONOGRAFIA_file_web; 
# End of foreach assign field loop.


$TAXONOMY_cathegories =~ s/\<br\>/\~/g; # break to tilde
$TAXONOMY_cathegories_broken = $TAXONOMY_cathegories;
$TAXONOMY_cathegories_broken =~ s/\~/\n/g; # tilde_to_break



$readonly ="";
(@file_web) = split (/\,/,$ICONOGRAFIA_gallery);

print<<HTML;

<style type="text/css">
<!--
.Stile1 {
	color: #FFFFFF;
	font-weight: bold;
}
-->
 </style>
</head>
<SCRIPT type="text/javascript">
<!-- This script generates automatic date field -->
var timerID = null;
var timerRunning = false;
var old_url ="$PAGE_URL";

function stopclock (){
 if(timerRunning)
 clearTimeout(timerID);
 timerRunning = false;

}




function showdate () {


// Array of day names
var dayNames = new Array();
dayNames[0] = "Sunday";
dayNames[1] = "Moday";
dayNames[2] = "Tuesday";
dayNames[3] = "Wednesday";
dayNames[4] = "Thursday";
dayNames[5] = "Friday";
dayNames[6] = "Saturday";

// Array of month Names
var monthNames = new Array();
monthNames[0] = "January";
monthNames[1] = "February";
monthNames[2] = "March";
monthNames[3] = "April";
monthNames[4] = "May";
monthNames[5] = "June";
monthNames[6] = "July";
monthNames[7] = "August";
monthNames[8] = "September";
monthNames[9] = "October";
monthNames[10] = "November";
monthNames[11] = "December";

// Array of Dates
var dateNames = new Array();
for(i = 1 ; i < 10 ; i++)
 dateNames[i]="0"+i;
for(i = 10 ; i < 32 ; i++)
 dateNames[i]=i;


// Elements of Date object assigned to variables
var now = new Date();
var day = now.getDay();
var month = now.getMonth();
var year = now.getFullYear();
var date = now.getDate();


 var hours = now.getHours();
 var minutes = now.getMinutes();
 var seconds = now.getSeconds()
// var timeValue = "" + ((hours >12) ? hours -12 :hours)
 var timeValue = "" + hours
 timeValue += ((minutes < 10) ? ":0" : ":") + minutes
// timeValue += (hours >= 12) ? " p.m." : " a.m."


// Code to assign fully formatted date and time values(e.g., Lunedì, 23/Luglio/2001)
 _date = dateNames[date] + "/" + monthNames[month] +"/" + year;
 document.myForm.Data_Ora.value = _date + " at " + timeValue;
// document.myForm.A_Delivery_date.value = document.myForm.Invoice_date.value;
// document.myForm.A_Delivery_time.value = timeValue;


 timerID = setTimeout("showdate()",1000000);
 timerRunning = true;
}

function startclock () {

 // Make sure the clock is stopped

 stopclock();
 showdate();
}


function change_image() {
 var GALLERY_ = new Array();
		GALLERY_CX = document.myForm.ICONOGRAFIA_gallery.value;
		inputstr = GALLERY_CX;
 GALLERY_CX = inputstr.replace(/\^\\,/,""); // Regex substitute leading comma into nil
 document.myForm.ICONOGRAFIA_gallery.value =GALLERY_CX;
		GALLERY_ = GALLERY_CX.split(',');
		 
 document.img0.src = "$image_path/" + GALLERY_[0];
 document.img1.src = "$image_path/" + GALLERY_[1];
 document.img2.src = "$image_path/" + GALLERY_[2];
 document.img3.src = "$image_path/" + GALLERY_[3];
 document.img4.src = "$image_path/" + GALLERY_[4];
 document.img5.src = "$image_path/" + GALLERY_[5]; 
 document.img6.src = "$image_path/" + GALLERY_[6];
 document.img7.src = "$image_path/" + GALLERY_[7]; 
 
 
 document.myForm.ICONOGRAFIA_file_web.value = GALLERY_[0];
}



var myWind = ""

function doNew_x() {
// either open, or put on the top if it is already existing
	if (myWind == "" || myWind.closed || myWind.name == undefined) {

 pics = window.open("./$script_name?operation=upload_1x","subWindow","HEIGHT=200,WIDTH=620,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes").focus();

	} else{	myWind.focus();	}
}


function doNew_y() {
// either open, or put on the top if it is already existing
	if (myWind == "" || myWind.closed || myWind.name == undefined) {

 pics = window.open("./$script_name?operation=upload_1y","subWindow","HEIGHT=200,WIDTH=620,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes").focus();

	} else{	myWind.focus();	}
}


function setURL() {
 var CONTEXT_ = new Array();
 CONTEXT_CX = document.myForm.TAXONOMY_filesystem_path.value;
 inputstr = CONTEXT_CX;
 CONTEXT_CX = inputstr.replace(/\\ /gi,""); // Regex substitute -- space into nil	.toLowerCase().replace(/\b[a-z]/g	
 inputstr = CONTEXT_CX;
 CONTEXT_CX = inputstr.toLowerCase();
 CONTEXT_ = CONTEXT_CX.split('>');
 nn = CONTEXT_.length;
 
 folder = CONTEXT_[0]; 
 name_element1 = CONTEXT_[1];

 inputstr = name_element1;
 title_name = document.myForm.TAXONOMY_page_title.value;
 if (title_name != "") {inputstr =title_name};
 inputstr = inputstr.replace(/\\u017D/g,"z");
 inputstr = inputstr.replace(/\\u017E/g,"z");
 inputstr = inputstr.replace(/\\u0161/g,"s");
 inputstr = inputstr.replace(/\\u0160/g,"s");

 inputstr = inputstr.replace(/\\u010C/g,"c");
 inputstr = inputstr.replace(/\\u010D/g,"c");
 inputstr = inputstr.replace(/\\u0106/g,"c");
 inputstr = inputstr.replace(/\\u0107/g,"c");

 inputstr = inputstr.replace(/\\u0111/g,"d");
 inputstr = inputstr.replace(/\\u0110/g,"d");
 name_element1 = inputstr.replace(/\\W\+/gi,"_"); // Regex substitute -- strange chars into underscore
 name_element1 = name_element1.toLowerCase(); 

 document.myForm.TAXONOMY_filesystem_path.value =folder + ">" + name_element1;
 
 web_file_URL = folder + "/" + name_element1;
 document.myForm.PAGE_URL.value = web_file_URL; 
 

 if ((web_file_URL === old_url) || (old_url === "url") ) {
    document.myForm.update_mode.value ='eliminate';
 }
 else {
    document.myForm.update_mode.value ='conserve';
 }
 
}




<!-- end of automatic date field -->
</SCRIPT>


<BODY bgcolor="white" onLoad="startclock(); timerONE=window.setTimeout">

 <script type="text/javascript" src="$image_path/js/global.js"></script>	
	<script type="text/javascript" src="$image_path/js/style.js"></script>
	<script type="text/javascript" src="$image_path/js/calculus3.js"></script>
 <center>
 <b>
 
<INPUT TYPE=HIDDEN NAME=key value="$key">
 			<table border="0" cellpadding="2" cellspacing="1" width="80%">
 <tbody>
 <tr>

 <td colspan="2" bgcolor="#e0e0e0"><div align="center"><strong>Scheda</strong></div></td>

 </tr>
 <tr bgcolor="#F5F5F5">
 <td colspan="2">
 <table width="660" border="0" cellspacing="0">

 <tbody>
 <tr>
 <td width="106" ><b>RECORD_ID:</b></td>
 <td width="144" ><input name="RECORD_ID" readonly value="$RECORD_ID" onKeyDown="return tabOnEnter (this, event);" type="text"></td>
 <td width="50" ><div align="left"><b>ID_number:</b></div></td>
 <td width="500" ><input name="ITEM_number" value="$ITEM_number" onKeyDown="return tabOnEnter (this, event);" type="text" size=8></td>
 </tr>
 </tbody>
 </table>
 </td>

 </tr>
 <tr>
 <td colspan="2" bgcolor="#009900">
 <div align="center"><span class="Stile1">TITLE & NAVIGATION TAXONOMY CONTEXT</span>
 <br>
 <img id="img0" name="img0" src="$image_path/$file_web[0]" align=left border="1" height="100" onclick="change_image();">
 <img id="img1" name="img1" src="$image_path/$file_web[1]" align=left border="1" height="100" onclick="change_image();">
 <img id="img2" name="img2" src="$image_path/$file_web[2]" align=left border="1" height="100" onclick="change_image();">
 <img id="img3" name="img3" src="$image_path/$file_web[3]" align=left border="1" height="100" onclick="change_image();">
 <img id="img4" name="img4" src="$image_path/$file_web[4]" align=left border="1" height="100" onclick="change_image();">
 <img id="img5" name="img5" src="$image_path/$file_web[5]" align=left border="1" height="100" onclick="change_image();">
 <img id="img6" name="img6" src="$image_path/$file_web[6]" align=left border="1" height="100" onclick="change_image();">
 <img id="img7" name="img7" src="$image_path/$file_web[7]" align=left border="1" height="100" onclick="change_image();">
 
 </div>
 </td>
 </tr>
 <tr>
 <td bgcolor="#d5ffd5"><table border="0" cellspacing="0">

 <tbody>
 <tr>
 <td colspan="2"><div align="center"><b>TITLE & NAVIGATION TAXONOMY CONTEXT</b></div></td>
 </tr>
 <tr>

 <td><div align="left"><b>Name:</b></div></td>
 <td><input name="TAXONOMY_page_title" value="$TAXONOMY_page_title" size="40" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>



 <tr>
 <td><div align="left"><b>Subtitle:</b></div></td>
 <td><input name="TAXONOMY_subtitle" value="$TAXONOMY_subtitle" size="40" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>
 

 

  
 </tbody>
 </table></td>
 <td bgcolor="#d5ffd5" width="100%"><table border="0" cellspacing="0">

 <tbody>
 <tr>
 <td width="164"><div align="left"><b>Filesystem path:</b></div></td>
 <td width="187"><input name="TAXONOMY_filesystem_path" value="$TAXONOMY_filesystem_path" size="30" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>
 <tr>
 <td><div align="left"><b><a href="javascript:doNew_x()" onMouseOver="window.status='File Upload y'; return true;">Image file</a>:</b></div></td>
 <td><input name="ICONOGRAFIA_file_web" value="$ICONOGRAFIA_file_web" size="18" onChange="change_image();" onClick="change_image();" $readonly type="text">
 <INPUT onclick="change_image();doNew_x()" type=button value="Upload" name=storage></td>
 </tr>
 <tr>
 <td width="164"><div align="left"><b>photo gallery:</b></div></td>
 <td width="187"><input name="ICONOGRAFIA_gallery" value="$ICONOGRAFIA_gallery" size="30" onkeydown="return tabOnEnter (this, event);" type="text"></td>
 </tr>
 </tbody>
 
 </table></td>
 </tr>



 



 <tr>
 <td colspan="2" bgcolor="#990033" ><div align="center" class="Stile1">TAXONOMY & CONTEXT CATEGORIES</div></td>

 </tr>
 <tr>

 <td colspan="2" bgcolor="#ffd5d5" ><b>Metacathegory: 
 <input name="TAXONOMY_metacathegory" value="$TAXONOMY_metacathegory" size="52" onkeydown="return tabOnEnter (this, event);" type="text">
 <br>
 </b> 


</td>
</tr>

 <tr>
 <td><div align="left"><b>Cathegory</b> / this page</div>
 <input name="TAXONOMY_cathegory" value="$TAXONOMY_cathegory" size="40" onkeydown="return tabOnEnter(this, event);" type="text">
 </td>


 <td><div align="left"><b>Taxonomy Path </b> / breadcrumbs</div>
 <input name="TAXONOMY_breadcrumbs" value="$TAXONOMY_breadcrumbs" size="40" onkeydown="return tabOnEnter(this, event);" type="text">
 </td>

 </tr>
 <tr>
 <td bgcolor="#ffd5d5" ><table border="0" cellspacing="0">
 <tbody>

 <tr>
 <td>&nbsp;</td>
 <td>Related Categories / le voci in questa categoria<textarea name="TAXONOMY_cathegories" cols="70" rows="7" >$TAXONOMY_cathegories_broken</textarea></td>
 </tr>

 </tbody>
 </table></td>

 <td bgcolor="#ffd5d5" width="100%">
 Related SubCategories<textarea name="TAXONOMY_subcathegories" cols="70" rows="7" >$TAXONOMY_subcathegories</textarea></td>
 </td>
 </tr>

 
</td>
 

<tr bgcolor="#879D1C">

 <td colspan="2"><div align="center"><span class="Stile1">DESCRIPTIVE INFORMATION</span></div></td>
 </tr>
 <tr>
 <td bgcolor="#dcec91"><table border="0" cellspacing="0">
 <tbody>
 <tr>

 <td valign="top"><b>Main content:<br>
  <textarea name="PAGE_content" cols="70" rows="16">$PAGE_content</textarea>
 </b></td>
 <td valign="top">&nbsp; </td>
 </tr>
 
 <tr>
 
 <td valign="top">&nbsp;				 </td>
 </tr>
 </tbody>
  </table></td>
 <td bgcolor="#dcec91"><table border="0" cellspacing="0">
 <tbody>


 <tr>
 <td valign="top"><strong>note varie:<br>

 </strong>
 <textarea name="PAGE_notes" cols="70" rows="7" >$PAGE_notes</textarea></td>
 </tr>

 </tbody>
 </table></td>
 </tr>

 <tr bgcolor="#9AC886">
 <td colspan="2"><div align="center" class="Stile1">ULTIMO AGGIORNAMENTO</div></td>

 </tr>
 <tr bgcolor="#dcecd5">
 <td colspan="2"> <table border="0" cellspacing="0">
 <tbody>
 <tr>
  <td width="85"><b>Data e ora:</b></td>
  <td ><input name="Data_Ora" value="$Data_Ora" onClick="startclock(); timerONE=window.setTimeout" size="54" onKeyDown="return tabOnEnter (this, event);" readonly></td>
 </tr>
 <tr>
  <td width="85"><b>URL:</b></td>
  <td ><input name="PAGE_URL" value="$PAGE_URL" onClick="setURL();" size="54" onKeyDown="return tabOnEnter (this, event);" readonly></td>
 </tr>
 <tr>
  <td width="85"><b>header_type:</b></td>
  <td >
  <input name="header_type" value="classic" type="hidden">
 <input name="header_" type="radio" value="classic" checked onClick="header_type.value ='classic';" >Classic
 <input name="header_" type="radio" value="menu" onClick="header_type.value ='menu';" >Menu
  </td>
 </tr> 
 <tr>
  <td width="85"><b>rendering:</b></td>
  <td >
  <input name="rendering_mode" value="classic" type="hidden">
 <input name="rendering_" type="radio" value="classic" checked onClick="rendering_mode.value ='classic';" >Classic
 <input name="rendering_" type="radio" value="flash" onClick="rendering_mode.value ='flash';" >Flash - Slide show
 </td>
 </tr>
 <tr>
  <td width="85"><b>Disqus:</b></td>
  <td >
  <input name="disqus_mode" value="absent" type="hidden">
 <input name="disqus_" type="radio" value="absent" checked onClick="disqus_mode.value ='absent';" >Absent
 <input name="disqus_" type="radio" value="present" onClick="disqus_mode.value ='present';" >Present
 </td>
 </tr>

 </tbody>
 </table></td>
 </tr>
 <tr bgcolor="#F5F5F5">
 <td colspan="2" align="center"><br>
 <INPUT TYPE=button onClick="setURL();startclock();timerONE=window.setTimeout;myForm.action.value='Conferma_pura_modifica';this.form.submit();" VALUE="Salva scheda" > 
 <br>
<input name="update_mode" value="conserve" type="text" readonly size="6">
  </td>

 </tr>
 </tbody>
 </table>
<br>

</b>

	</td></tr>
 
</center>
<INPUT TYPE="hidden" NAME="archive_mode" VALUE="$archive_mode">
HTML
&html_footer;

} # End of print_add_screen subroutine.






