Merge branch 'dpt_trans_entfernen'
authorNiclas Zimmermann <niclas@kivitendo-premium.de>
Tue, 5 Mar 2013 14:17:55 +0000 (15:17 +0100)
committerNiclas Zimmermann <niclas@kivitendo-premium.de>
Tue, 5 Mar 2013 14:17:55 +0000 (15:17 +0100)
103 files changed:
SL/AM.pm
SL/BackgroundJob/CreatePeriodicInvoices.pm
SL/CA.pm
SL/Controller/CsvImport.pm
SL/Controller/RecordLinks.pm
SL/DB/CustomerTax.pm [deleted file]
SL/DB/Helper/ALL.pm
SL/DB/Helper/Mappings.pm
SL/DB/Manager/DeliveryOrder.pm
SL/DB/Manager/Invoice.pm
SL/DB/Manager/Order.pm
SL/DB/Manager/PurchaseInvoice.pm
SL/DB/MetaSetup/CustomerTax.pm [deleted file]
SL/DB/MetaSetup/PartsTax.pm [deleted file]
SL/DB/MetaSetup/VendorTax.pm [deleted file]
SL/DB/PartsTax.pm [deleted file]
SL/DB/VendorTax.pm [deleted file]
SL/Form.pm
SL/IC.pm
SL/IR.pm
SL/IS.pm
SL/Layout/MenuLeft.pm
SL/Layout/None.pm
SL/Presenter/Invoice.pm
SL/Presenter/Record.pm
SL/RP.pm
SL/Template/Plugin/L.pm
SL/Template/Plugin/MultiColumnIterator.pm [deleted file]
bin/mozilla/dn.pl
bin/mozilla/do.pl
bin/mozilla/ir.pl
bin/mozilla/is.pl
bin/mozilla/oe.pl
bin/mozilla/rp.pl
bin/mozilla/sepa.pl
css/kivitendo/jquery-ui.custom.css
css/lx-office-erp/jquery-ui.custom.css
css/presenter/record/record_list.css [new file with mode: 0644]
image/dialog-close.png [new file with mode: 0644]
js/jquery/ui/i18n/jquery.ui.datepicker-de.js [new file with mode: 0644]
js/jquery/ui/i18n/jquery.ui.datepicker-en-GB.js [new file with mode: 0644]
js/jquery/ui/i18n/jquery.ui.datepicker-en.js [new symlink]
js/jscalendar/calendar-setup.js [deleted file]
js/jscalendar/calendar-win2k-1.css [deleted file]
js/jscalendar/calendar.js [deleted file]
js/jscalendar/lang/calendar-af.js [deleted file]
js/jscalendar/lang/calendar-br.js [deleted file]
js/jscalendar/lang/calendar-ca.js [deleted file]
js/jscalendar/lang/calendar-cs-win.js [deleted file]
js/jscalendar/lang/calendar-da.js [deleted file]
js/jscalendar/lang/calendar-de.js [deleted file]
js/jscalendar/lang/calendar-du.js [deleted file]
js/jscalendar/lang/calendar-el.js [deleted file]
js/jscalendar/lang/calendar-en.js [deleted file]
js/jscalendar/lang/calendar-es.js [deleted file]
js/jscalendar/lang/calendar-fi.js [deleted file]
js/jscalendar/lang/calendar-fr.js [deleted file]
js/jscalendar/lang/calendar-hr-utf8.js [deleted file]
js/jscalendar/lang/calendar-hr.js [deleted file]
js/jscalendar/lang/calendar-hu.js [deleted file]
js/jscalendar/lang/calendar-it.js [deleted file]
js/jscalendar/lang/calendar-jp.js [deleted file]
js/jscalendar/lang/calendar-ko-utf8.js [deleted file]
js/jscalendar/lang/calendar-ko.js [deleted file]
js/jscalendar/lang/calendar-lt-utf8.js [deleted file]
js/jscalendar/lang/calendar-lt.js [deleted file]
js/jscalendar/lang/calendar-nl.js [deleted file]
js/jscalendar/lang/calendar-no.js [deleted file]
js/jscalendar/lang/calendar-pl-utf8.js [deleted file]
js/jscalendar/lang/calendar-pl.js [deleted file]
js/jscalendar/lang/calendar-pt.js [deleted file]
js/jscalendar/lang/calendar-ro.js [deleted file]
js/jscalendar/lang/calendar-ru.js [deleted file]
js/jscalendar/lang/calendar-si.js [deleted file]
js/jscalendar/lang/calendar-sk.js [deleted file]
js/jscalendar/lang/calendar-sp.js [deleted file]
js/jscalendar/lang/calendar-sv.js [deleted file]
js/jscalendar/lang/calendar-tr.js [deleted file]
js/jscalendar/lang/calendar-zh.js [deleted file]
js/jscalendar/menuarrow.gif [deleted file]
js/jscalendar/menuarrow2.gif [deleted file]
locale/de/all
scripts/locales.pl
sql/Pg-upgrade2/delete_customertax_vendortax_partstax.sql [new file with mode: 0644]
sql/Pg-upgrade2/drop_gifi.sql [new file with mode: 0644]
templates/webpages/bp/list_spool.html
templates/webpages/common/search_history.html
templates/webpages/delivery_plan/_filter.html
templates/webpages/dunning/show_invoices.html
templates/webpages/ic/form_header.html
templates/webpages/ir/_payments.html
templates/webpages/ir/form_header.html
templates/webpages/is/form_header.html
templates/webpages/layout/javascript_setup.html
templates/webpages/oe/form_footer.html
templates/webpages/presenter/record/empty_record_list.html [deleted file]
templates/webpages/presenter/record/grouped_record_list.html
templates/webpages/presenter/record/record_list.html
templates/webpages/rc/step2.html
templates/webpages/record_links/add_filter.html [new file with mode: 0644]
templates/webpages/record_links/add_list.html [new file with mode: 0644]
templates/webpages/rp/report.html
templates/webpages/sepa/bank_transfer_edit.html

index 5645c4d..591f580 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -475,11 +475,9 @@ sub delete_account {
     do_query($form, $dbh, $query, $form->{id});
   }
 
-  foreach my $table (qw(partstax customertax vendortax tax)) {
-    $query = qq|DELETE FROM $table
-                WHERE chart_id = ?|;
-    do_query($form, $dbh, $query, $form->{id});
-  }
+  $query = qq|DELETE FROM tax
+              WHERE chart_id = ?|;
+  do_query($form, $dbh, $query, $form->{id});
 
   # delete chart of account record
   $query = qq|DELETE FROM chart
@@ -1779,8 +1777,8 @@ sub get_tax {
                    taxkey,
                    taxdescription,
                    round(rate * 100, 2) AS rate,
-                   chart_id, 
-                   (id IN (SELECT tax_id 
+                   chart_id,
+                   (id IN (SELECT tax_id
                            FROM acc_trans)) AS tax_already_used
                  FROM tax
                  WHERE id = ? |;
index 0bbea2d..474762d 100644 (file)
@@ -75,8 +75,8 @@ sub _generate_time_period_variables {
   my $period_end_date   = $period_start_date->clone->truncate(to => 'month')->add(months => $config->get_period_length)->subtract(days => 1);
 
   my @month_names       = ('',
-                           'Januar', 'Februar', 'März',      'April',   'Mai',      'Juni',
-                           'Juli',   'August',  'September', 'Oktober', 'November', 'Dezember');
+                           $::locale->text('January'), $::locale->text('February'), $::locale->text('March'),     $::locale->text('April'),   $::locale->text('May'),      $::locale->text('June'),
+                           $::locale->text('July'),    $::locale->text('August'),   $::locale->text('September'), $::locale->text('October'), $::locale->text('November'), $::locale->text('December'));
 
   my $vars = { current_quarter     => $period_start_date->quarter,
                previous_quarter    => $period_start_date->clone->subtract(months => 3)->quarter,
index 577d6b9..e24be69 100644 (file)
--- a/SL/CA.pm
+++ b/SL/CA.pm
@@ -113,7 +113,7 @@ sub all_accounts {
     LEFT JOIN tax tx ON (tk.tax_id = tx.id)
     WHERE 1=1
     $where
-    GROUP BY c.accno, c.id, c.description, c.charttype, c.gifi_accno,
+    GROUP BY c.accno, c.id, c.description, c.charttype,
       c.category, c.link, c.pos_bwa, c.pos_bilanz, c.pos_eur, c.valid_from,
       c.datevautomatik
     ORDER BY c.accno
index dda0882..c509e21 100644 (file)
@@ -152,7 +152,7 @@ sub action_report {
   my $page = $::form->{page} || 1;
   my $pages = {};
   $pages->{per_page}        = $::form->{per_page} || 20;
-  $pages->{max}             = SL::DB::Helper::Paginated::ceil($num_rows / ($num_cols || 1), $pages->{per_page}) || 1;
+  $pages->{max}             = SL::DB::Helper::Paginated::ceil($num_rows, $pages->{per_page}) || 1;
   $pages->{cur}             = $page < 1 ? 1
                             : $page > $pages->{max} ? $pages->{max}
                             : $page;
@@ -162,7 +162,7 @@ sub action_report {
     0,
     $pages->{per_page} * ($pages->{cur}-1) + 1
       ..
-    min($pages->{per_page} * $pages->{cur}, $num_rows / ($num_cols || 1) - 1)
+    min($pages->{per_page} * $pages->{cur}, $num_rows)
   ];
 
   my @query = (
@@ -416,7 +416,7 @@ sub save_report {
   my (@headers, @info_methods, @raw_methods, @methods);
 
   for my $i (0 .. $#{ $self->info_headers->{headers} }) {
-    next unless         $self->info_headers->{used}->{ $self->info_headers->{headers}->[$i] };
+    next unless         $self->info_headers->{used}->{ $self->info_headers->{methods}->[$i] };
     push @headers,      $self->info_headers->{headers}->[$i];
     push @info_methods, $self->info_headers->{methods}->[$i];
   }
index a761443..de03775 100644 (file)
@@ -4,13 +4,36 @@ use strict;
 
 use parent qw(SL::Controller::Base);
 
+use List::Util qw(first);
+
+use SL::DB::Helper::Mappings;
 use SL::DB::Order;
 use SL::DB::DeliveryOrder;
 use SL::DB::Invoice;
 use SL::DB::PurchaseInvoice;
+use SL::DB::RecordLink;
+use SL::JSON;
 use SL::Locale::String;
 
-__PACKAGE__->run_before('check_object_params', only => [ qw(ajax_list ajax_delete) ]);
+use Rose::Object::MakeMethods::Generic
+(
+  scalar => [ qw(object object_model object_id link_type link_direction link_type_desc) ],
+);
+
+__PACKAGE__->run_before('check_object_params', only => [ qw(ajax_list ajax_delete ajax_add_select_type ajax_add_filter ajax_add_list ajax_add_do) ]);
+__PACKAGE__->run_before('check_link_params',   only => [ qw(                                                           ajax_add_list ajax_add_do) ]);
+
+my @link_types = (
+  { title => t8('Sales quotation'),         type => 'sales_quotation',         model => 'Order',           number => 'quonumber', },
+  { title => t8('Sales Order'),             type => 'sales_order',             model => 'Order',           number => 'ordnumber', },
+  { title => t8('Sales delivery order'),    type => 'sales_delivery_order',    model => 'DeliveryOrder',   number => 'donumber',  },
+  { title => t8('Sales Invoice'),           type => 'invoice',                 model => 'Invoice',         number => 'invnumber', },
+  { title => t8('Request for Quotation'),   type => 'request_quotation',       model => 'Order',           number => 'quonumber', },
+  { title => t8('Purchase Order'),          type => 'purchase_order',          model => 'Order',           number => 'ordnumber', },
+  { title => t8('Purchase delivery order'), type => 'purchase_delivery_order', model => 'DeliveryOrder',   number => 'donumber',  },
+  { title => t8('Purchase Invoice'),        type => 'purchase_invoice',        model => 'PurchaseInvoice', number => 'invnumber', },
+);
+
 
 #
 # actions
@@ -20,15 +43,13 @@ sub action_ajax_list {
   my ($self) = @_;
 
   eval {
-    my $model          = 'SL::DB::' . $::form->{object_model};
-    my $object         = $model->new(id => $::form->{object_id})->load || die $::locale->text("Record not found");
-    my $linked_records = $object->linked_records(direction => 'both');
+    my $linked_records = $self->object->linked_records(direction => 'both');
     my $output         = SL::Presenter->get->grouped_record_list(
       $linked_records,
       with_columns      => [ qw(record_link_direction) ],
       edit_record_links => 1,
-      object_model      => $::form->{object_model},
-      object_id         => $::form->{object_id},
+      object_model      => $self->object_model,
+      object_id         => $self->object_id,
     );
     $self->render(\$output, { layout => 0, process => 0 });
 
@@ -41,16 +62,13 @@ sub action_ajax_list {
 sub action_ajax_delete {
   my ($self) = @_;
 
-  my $prefix = $::form->{form_prefix} || 'record_links';
-  foreach my $str (@{ $::form->{"${prefix}_delete"} || [] }) {
+  foreach my $str (@{ $::form->{record_links_delete} || [] }) {
     my ($from_table, $from_id, $to_table, $to_id) = split m/__/, $str, 4;
     $from_id *= 1;
     $to_id   *= 1;
 
     next if !$from_table || !$from_id || !$to_table || !$to_id;
 
-    # $::lxdebug->message(0, "INSERT INTO record_links (from_table, from_id, to_table, to_id) VALUES ('${from_table}', ${from_id}, '${to_table}', ${to_id});");
-
     SL::DB::Manager::RecordLink->delete_all(where => [
       from_table => $from_table,
       from_id    => $from_id,
@@ -62,6 +80,87 @@ sub action_ajax_delete {
   $self->action_ajax_list;
 }
 
+sub action_ajax_add_filter {
+  my ($self) = @_;
+
+  my $presenter = $self->presenter;
+
+  my @link_type_select = map { [ $_->{type}, $_->{title} ] } @link_types;
+  my @projects         = map { [ $_->id, $presenter->project($_, display => 'inline', style => 'both', no_link => 1) ] } @{ SL::DB::Manager::Project->get_all_sorted };
+  my $is_sales         = $self->object->can('customer_id') && $self->object->customer_id;
+
+  $self->render(
+    'record_links/add_filter',
+    { layout          => 0 },
+    is_sales          => $is_sales,
+    DEFAULT_LINK_TYPE => $is_sales ? 'sales_quotation' : 'request_quotation',
+    LINK_TYPES        => \@link_type_select,
+    PROJECTS          => \@projects,
+  );
+}
+
+sub action_ajax_add_list {
+  my ($self) = @_;
+
+  my $manager = 'SL::DB::Manager::' . $self->link_type_desc->{model};
+  my $vc      = $self->link_type =~ m/sales_|^invoice$/ ? 'customer' : 'vendor';
+
+  my @where = $manager->type_filter($self->link_type);
+  push @where, ("${vc}.${vc}number"     => { ilike => '%' . $::form->{vc_number} . '%' })               if $::form->{vc_number};
+  push @where, ("${vc}.name"            => { ilike => '%' . $::form->{vc_name}   . '%' })               if $::form->{vc_name};
+  push @where, (transaction_description => { ilike => '%' . $::form->{transaction_description} . '%' }) if $::form->{transaction_description};
+  push @where, (globalproject_id        => $::form->{globalproject_id})                                 if $::form->{globalproject_id};
+
+  my $objects = $manager->get_all_sorted(where => \@where, with_objects => [ $vc, 'globalproject' ]);
+  my $output  = $self->render(
+    'record_links/add_list',
+    { output      => 0 },
+    OBJECTS       => $objects,
+    vc            => $vc,
+    number_column => $self->link_type_desc->{number},
+  );
+
+  my %result = ( count => scalar(@{ $objects }), html => $output );
+
+  $self->render(\to_json(\%result), { type => 'json', process => 0 });
+}
+
+sub action_ajax_add_do {
+  my ($self, %params) = @_;
+
+  my $object_side = $self->link_direction eq 'from' ? 'from' : 'to';
+  my $link_side   = $object_side          eq 'from' ? 'to'   : 'from';
+  my $link_table  = SL::DB::Helper::Mappings::get_table_for_package($self->link_type_desc->{model});
+
+  foreach my $link_id (@{ $::form->{link_id} || [] }) {
+    # Check for existing reverse connections in order to avoid loops.
+    my @props = (
+      "${link_side}_table"   => $self->object->meta->table,
+      "${link_side}_id"      => $self->object_id,
+      "${object_side}_table" => $link_table,
+      "${object_side}_id"    => $link_id,
+    );
+
+    my $existing = SL::DB::Manager::RecordLink->get_all(where => \@props, limit => 1)->[0];
+    next if $existing;
+
+    # Check for existing connections in order to avoid duplicates.
+    @props = (
+      "${object_side}_table" => $self->object->meta->table,
+      "${object_side}_id"    => $self->object_id,
+      "${link_side}_table"   => $link_table,
+      "${link_side}_id"      => $link_id,
+    );
+
+    $existing = SL::DB::Manager::RecordLink->get_all(where => \@props, limit => 1)->[0];
+
+    SL::DB::RecordLink->new(@props)->save if !$existing;
+  }
+
+  $self->action_ajax_list;
+}
+
+
 #
 # filters
 #
@@ -69,7 +168,27 @@ sub action_ajax_delete {
 sub check_object_params {
   my ($self) = @_;
 
-  return $::form->{object_id} && ($::form->{object_model} =~ m/^(?:Order|DeliveryOrder|Invoice|PurchaseInvoice)$/);
+  my %models = map { ($_->{model} => 1 ) } @link_types;
+
+  $self->object_id(   $::form->{object_id});
+  $self->object_model($::form->{object_model});
+
+  die "Invalid object_model or object_id" if !$self->object_id || !$models{$self->object_model};
+
+  my $model = 'SL::DB::' . $self->object_model;
+  $self->object($model->new(id => $self->object_id)->load || die "Record not found");
+
+  return 1;
+}
+
+sub check_link_params {
+  my ($self) = @_;
+
+  $self->link_type(     $::form->{link_type});
+  $self->link_type_desc((first { $_->{type} eq $::form->{link_type} } @link_types)                || die "Invalid link_type");
+  $self->link_direction($::form->{link_direction} =~ m/^(?:from|to)$/ ? $::form->{link_direction} :  die "Invalid link_direction");
+
+  return 1;
 }
 
 1;
diff --git a/SL/DB/CustomerTax.pm b/SL/DB/CustomerTax.pm
deleted file mode 100644 (file)
index 2efc60e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# This file has been auto-generated only because it didn't exist.
-# Feel free to modify it at will; it will not be overwritten automatically.
-
-package SL::DB::CustomerTax;
-
-use strict;
-
-use SL::DB::MetaSetup::CustomerTax;
-
-# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
-__PACKAGE__->meta->make_manager_class;
-
-1;
index 928b665..83161c5 100644 (file)
@@ -24,7 +24,6 @@ use SL::DB::CustomVariable;
 use SL::DB::CustomVariableConfig;
 use SL::DB::CustomVariableValidity;
 use SL::DB::Customer;
-use SL::DB::CustomerTax;
 use SL::DB::Datev;
 use SL::DB::Default;
 use SL::DB::DeliveryOrder;
@@ -57,7 +56,6 @@ use SL::DB::Order;
 use SL::DB::OrderItem;
 use SL::DB::Part;
 use SL::DB::PartsGroup;
-use SL::DB::PartsTax;
 use SL::DB::PaymentTerm;
 use SL::DB::PeriodicInvoice;
 use SL::DB::PeriodicInvoicesConfig;
@@ -86,7 +84,6 @@ use SL::DB::Unit;
 use SL::DB::UnitsLanguage;
 use SL::DB::VC;
 use SL::DB::Vendor;
-use SL::DB::VendorTax;
 use SL::DB::Warehouse;
 
 1;
index d04d05e..5267449 100644 (file)
@@ -56,7 +56,6 @@ my %lxoffice_package_names = (
   custom_variable_configs        => 'custom_variable_config',
   custom_variables               => 'custom_variable',
   custom_variables_validity      => 'custom_variable_validity',
-  customertax                    => 'customer_tax',
   datev                          => 'datev',
   defaults                       => 'default',
   delivery_orders                => 'delivery_order',
@@ -85,7 +84,6 @@ my %lxoffice_package_names = (
   oe                             => 'order',
   parts                          => 'part',
   partsgroup                     => 'parts_group',
-  partstax                       => 'parts_tax',
   payment_terms                  => 'payment_term',
   periodic_invoices              => 'periodic_invoice',
   periodic_invoices_configs      => 'periodic_invoices_config',
@@ -109,7 +107,6 @@ my %lxoffice_package_names = (
   units                          => 'unit',
   units_language                 => 'units_language',
   vendor                         => 'vendor',
-  vendortax                      => 'vendor_tax',
 );
 
 my (%lxoffice_tables_to_packages, %lxoffice_tables_to_manager_packages, %lxoffice_packages_to_tables);
index 1b76830..fa67f66 100644 (file)
@@ -2,8 +2,10 @@ package SL::DB::Manager::DeliveryOrder;
 
 use strict;
 
-use SL::DB::Helper::Manager;
-use base qw(SL::DB::Helper::Manager);
+use parent qw(SL::DB::Helper::Manager);
+
+use SL::DB::Helper::Paginated;
+use SL::DB::Helper::Sorted;
 
 sub object_class { 'SL::DB::DeliveryOrder' }
 
@@ -19,4 +21,31 @@ sub type_filter {
   die "Unknown type $type";
 }
 
+sub _sort_spec {
+  return (
+    default                   => [ 'transdate', 1 ],
+    nulls                     => {
+      transaction_description => 'FIRST',
+      customer_name           => 'FIRST',
+      vendor_name             => 'FIRST',
+      default                 => 'LAST',
+    },
+    columns                   => {
+      SIMPLE                  => 'ALL',
+      customer                => 'customer.name',
+      vendor                  => 'vendor.name',
+      globalprojectnumber     => 'lower(globalproject.projectnumber)',
+
+      # Bug in Rose::DB::Object: the next should be
+      # "globalproject.project_type.description". This workaround will
+      # only work if no other table with "project_type" is visible in
+      # the current query
+      globalproject_type      => 'lower(project_type.description)',
+
+      map { ( $_ => "lower(delivery_orders.$_)" ) } qw(donumber ordnumber cusordnumber oreqnumber shippingpoint shipvia notes intnotes transaction_description),
+    });
+}
+
+sub default_objects_per_page { 40 }
+
 1;
index c3a9a7b..493789e 100644 (file)
@@ -2,7 +2,10 @@ package SL::DB::Manager::Invoice;
 
 use strict;
 
-use base qw(SL::DB::Helper::Manager);
+use parent qw(SL::DB::Helper::Manager);
+
+use SL::DB::Helper::Paginated;
+use SL::DB::Helper::Sorted;
 
 sub object_class { 'SL::DB::Invoice' }
 
@@ -13,7 +16,7 @@ sub type_filter {
   my $type  = lc(shift || '');
 
   return (or  => [ invoice => 0, invoice => undef                                               ]) if $type eq 'ar_transaction';
-  return (and => [ invoice => 1, amount  => { ge => 0 }, or => [ storno => 0, storno => undef ] ]) if $type eq 'invoice';
+  return (and => [ invoice => 1, amount  => { ge => 0 }, or => [ storno => 0, storno => undef ] ]) if $type =~ m/^(?:sales_)?invoice$/;
   return (and => [ invoice => 1, amount  => { lt => 0 }, or => [ storno => 0, storno => undef ] ]) if $type eq 'credit_note';
   return (and => [ invoice => 1, amount  => { lt => 0 },         storno => 1                    ]) if $type =~ m/(?:invoice_)?storno/;
   return (and => [ invoice => 1, amount  => { ge => 0 },         storno => 1                    ]) if $type eq 'credit_note_storno';
@@ -21,4 +24,29 @@ sub type_filter {
   die "Unknown type $type";
 }
 
+sub _sort_spec {
+  return (
+    default                   => [ 'transdate', 1 ],
+    nulls                     => {
+      transaction_description => 'FIRST',
+      customer_name           => 'FIRST',
+      default                 => 'LAST',
+    },
+    columns                   => {
+      SIMPLE                  => 'ALL',
+      customer                => 'customer.name',
+      globalprojectnumber     => 'lower(globalproject.projectnumber)',
+
+      # Bug in Rose::DB::Object: the next should be
+      # "globalproject.project_type.description". This workaround will
+      # only work if no other table with "project_type" is visible in
+      # the current query
+      globalproject_type      => 'lower(project_type.description)',
+
+      map { ( $_ => "lower(ar.$_)" ) } qw(invnumber ordnumber quonumber cusordnumber shippingpoint shipvia notes intnotes transaction_description),
+    });
+}
+
+sub default_objects_per_page { 40 }
+
 1;
index 3c76073..69aa266 100644 (file)
@@ -30,11 +30,13 @@ sub _sort_spec {
     nulls                     => {
       transaction_description => 'FIRST',
       customer_name           => 'FIRST',
+      vendor_name             => 'FIRST',
       default                 => 'LAST',
     },
     columns                   => {
       SIMPLE                  => 'ALL',
       customer                => 'customer.name',
+      vendor                  => 'vendor.name',
       globalprojectnumber     => 'lower(globalproject.projectnumber)',
       map { ( $_ => "lower(oe.$_)" ) } qw(ordnumber quonumber cusordnumber shippingpoint shipvia notes intnotes transaction_description),
     });
index 1cc5737..2dd3fad 100644 (file)
@@ -2,8 +2,10 @@ package SL::DB::Manager::PurchaseInvoice;
 
 use strict;
 
-use SL::DB::Helper::Manager;
-use base qw(SL::DB::Helper::Manager);
+use parent qw(SL::DB::Helper::Manager);
+
+use SL::DB::Helper::Paginated;
+use SL::DB::Helper::Sorted;
 
 sub object_class { 'SL::DB::PurchaseInvoice' }
 
@@ -14,10 +16,35 @@ sub type_filter {
   my $type  = lc(shift || '');
 
   return (or  => [ invoice => 0, invoice => undef                       ]) if $type eq 'ap_transaction';
-  return (and => [ invoice => 1, or => [ storno => 0, storno => undef ] ]) if $type eq 'invoice';
+  return (and => [ invoice => 1, or => [ storno => 0, storno => undef ] ]) if $type =~ m/^(?:purchase_)?invoice$/;
   return (and => [ invoice => 1,         storno => 1                    ]) if $type =~ m/(?:invoice_)?storno/;
 
   die "Unknown type $type";
 }
 
+sub _sort_spec {
+  return (
+    default                   => [ 'transdate', 1 ],
+    nulls                     => {
+      transaction_description => 'FIRST',
+      vendor_name             => 'FIRST',
+      default                 => 'LAST',
+    },
+    columns                   => {
+      SIMPLE                  => 'ALL',
+      vendor                  => 'vendor.name',
+      globalprojectnumber     => 'lower(globalproject.projectnumber)',
+
+      # Bug in Rose::DB::Object: the next should be
+      # "globalproject.project_type.description". This workaround will
+      # only work if no other table with "project_type" is visible in
+      # the current query
+      globalproject_type      => 'lower(project_type.description)',
+
+      map { ( $_ => "lower(ap.$_)" ) } qw(invnumber ordnumber quonumber shipvia notes intnotes transaction_description),
+    });
+}
+
+sub default_objects_per_page { 40 }
+
 1;
diff --git a/SL/DB/MetaSetup/CustomerTax.pm b/SL/DB/MetaSetup/CustomerTax.pm
deleted file mode 100644 (file)
index 2522995..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file has been auto-generated. Do not modify it; it will be overwritten
-# by rose_auto_create_model.pl automatically.
-package SL::DB::CustomerTax;
-
-use strict;
-
-use base qw(SL::DB::Object);
-
-__PACKAGE__->meta->setup(
-  table   => 'customertax',
-
-  columns => [
-    customer_id => { type => 'integer' },
-    chart_id    => { type => 'integer' },
-    itime       => { type => 'timestamp', default => 'now()' },
-    mtime       => { type => 'timestamp' },
-    id          => { type => 'serial', not_null => 1 },
-  ],
-
-  primary_key_columns => [ 'id' ],
-
-  allow_inline_column_values => 1,
-);
-
-1;
-;
diff --git a/SL/DB/MetaSetup/PartsTax.pm b/SL/DB/MetaSetup/PartsTax.pm
deleted file mode 100644 (file)
index 9bcdb5d..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file has been auto-generated. Do not modify it; it will be overwritten
-# by rose_auto_create_model.pl automatically.
-package SL::DB::PartsTax;
-
-use strict;
-
-use base qw(SL::DB::Object);
-
-__PACKAGE__->meta->setup(
-  table   => 'partstax',
-
-  columns => [
-    parts_id => { type => 'integer' },
-    chart_id => { type => 'integer' },
-    itime    => { type => 'timestamp', default => 'now()' },
-    mtime    => { type => 'timestamp' },
-    id       => { type => 'serial', not_null => 1 },
-  ],
-
-  primary_key_columns => [ 'id' ],
-
-  allow_inline_column_values => 1,
-);
-
-1;
-;
diff --git a/SL/DB/MetaSetup/VendorTax.pm b/SL/DB/MetaSetup/VendorTax.pm
deleted file mode 100644 (file)
index bbd3988..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file has been auto-generated. Do not modify it; it will be overwritten
-# by rose_auto_create_model.pl automatically.
-package SL::DB::VendorTax;
-
-use strict;
-
-use base qw(SL::DB::Object);
-
-__PACKAGE__->meta->setup(
-  table   => 'vendortax',
-
-  columns => [
-    vendor_id => { type => 'integer' },
-    chart_id  => { type => 'integer' },
-    itime     => { type => 'timestamp', default => 'now()' },
-    mtime     => { type => 'timestamp' },
-    id        => { type => 'serial', not_null => 1 },
-  ],
-
-  primary_key_columns => [ 'id' ],
-
-  allow_inline_column_values => 1,
-);
-
-1;
-;
diff --git a/SL/DB/PartsTax.pm b/SL/DB/PartsTax.pm
deleted file mode 100644 (file)
index 3bea19b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# This file has been auto-generated only because it didn't exist.
-# Feel free to modify it at will; it will not be overwritten automatically.
-
-package SL::DB::PartsTax;
-
-use strict;
-
-use SL::DB::MetaSetup::PartsTax;
-
-# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
-__PACKAGE__->meta->make_manager_class;
-
-1;
diff --git a/SL/DB/VendorTax.pm b/SL/DB/VendorTax.pm
deleted file mode 100644 (file)
index a4c6fc9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# This file has been auto-generated only because it didn't exist.
-# Feel free to modify it at will; it will not be overwritten automatically.
-
-package SL::DB::VendorTax;
-
-use strict;
-
-use SL::DB::MetaSetup::VendorTax;
-
-# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
-__PACKAGE__->meta->make_manager_class;
-
-1;
index 6a6dc9c..3c809b3 100644 (file)
@@ -471,14 +471,12 @@ sub header {
     jquery.multiselect2side frame_header/header
     ui-lightness/jquery-ui
     jquery-ui.custom
-    js/jscalendar/calendar-win2k-1
   );
 
-  $layout->use_javascript("$_.js") for qw(
-    jquery common jscalendar/calendar jscalendar/lang/calendar-de
-    jscalendar/calendar-setup part_selection jquery-ui jquery.cookie jqModal
-    switchmenuframe
-  );
+  $layout->use_javascript("$_.js") for (qw(
+    jquery jquery-ui jquery.cookie jqModal jquery.checkall
+    common part_selection switchmenuframe
+  ), "jquery/ui/i18n/jquery.ui.datepicker-$::myconfig{countrycode}");
 
   $self->{favicon} ||= "favicon.ico";
   $self->{titlebar} = join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title} || !$self->{titlebar};
@@ -757,51 +755,6 @@ sub show_generic_information {
   ::end_of_request();
 }
 
-# write Trigger JavaScript-Code ($qty = quantity of Triggers)
-# changed it to accept an arbitrary number of triggers - sschoeling
-sub write_trigger {
-  $main::lxdebug->enter_sub();
-
-  my $self     = shift;
-  my $myconfig = shift;
-  my $qty      = shift;
-
-  # set dateform for jsscript
-  # default
-  my %dateformats = (
-    "dd.mm.yy" => "%d.%m.%Y",
-    "dd/mm/yy" => "%d/%m/%Y",
-    "mm/dd/yy" => "%m/%d/%Y",
-    "yyyy-mm-dd" => "%Y-%m-%d",
-    );
-
-  my $ifFormat = defined($dateformats{$myconfig->{"dateformat"}}) ?
-    $dateformats{$myconfig->{"dateformat"}} : "%d.%m.%Y";
-
-  my @triggers;
-  while ($#_ >= 2) {
-    push @triggers, qq|
-       Calendar.setup(
-      {
-      inputField : "| . (shift) . qq|",
-      ifFormat :"$ifFormat",
-      align : "| .  (shift) . qq|",
-      button : "| . (shift) . qq|"
-      }
-      );
-       |;
-  }
-  my $jsscript = qq|
-       <script type="text/javascript">
-       <!--| . join("", @triggers) . qq|//-->
-        </script>
-        |;
-
-  $main::lxdebug->leave_sub();
-
-  return $jsscript;
-}    #end sub write_trigger
-
 sub _store_redirect_info_in_session {
   my ($self) = @_;
 
index 8d46c2d..d458862 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -156,18 +156,6 @@ SQL
   }
   $trq->finish;
 
-  # now get accno for taxes
-  $query =
-    qq|SELECT c.accno
-       FROM chart c, partstax pt
-       WHERE (pt.chart_id = c.id) AND (pt.parts_id = ?)|;
-  $sth = prepare_execute_query($form, $dbh, $query, conv_i($form->{id}));
-  while (my ($key) = $sth->fetchrow_array) {
-    $form->{amount}{$key} = $key;
-  }
-
-  $sth->finish;
-
   # is it an orphan
   my @referencing_tables = qw(invoice orderitems inventory rmaitems);
   my %column_map         = ( );
@@ -295,9 +283,6 @@ sub save {
       do_query($form, $dbh, qq|DELETE FROM assembly WHERE id = ?|, conv_i($form->{id}));
     }
 
-    # delete tax records
-    do_query($form, $dbh, qq|DELETE FROM partstax WHERE parts_id = ?|, conv_i($form->{id}));
-
     # delete translations
     do_query($form, $dbh, qq|DELETE FROM translation WHERE parts_id = ?|, conv_i($form->{id}));
 
@@ -470,17 +455,6 @@ sub save {
       }
     }
 
-  # insert taxes
-  foreach my $item (split(/ /, $form->{taxaccounts})) {
-    if ($form->{"IC_tax_$item"}) {
-      $query =
-        qq|INSERT INTO partstax (parts_id, chart_id)
-           VALUES (?, (SELECT id FROM chart WHERE accno = ?))|;
-      @values = (conv_i($form->{id}), $item);
-      do_query($form, $dbh, $query, @values);
-    }
-  }
-
   # add assembly records
   if ($form->{item} eq 'assembly') {
 
@@ -617,7 +591,7 @@ sub delete {
 
   my %columns = ( "assembly" => "id", "parts" => "id" );
 
-  for my $table (qw(prices partstax makemodel inventory assembly translation parts)) {
+  for my $table (qw(prices makemodel inventory assembly translation parts)) {
     my $column = defined($columns{$table}) ? $columns{$table} : "parts_id";
     do_query($form, $dbh, qq|DELETE FROM $table WHERE $column = ?|, @values);
   }
index 48c5134..1f0ae58 100644 (file)
--- a/SL/IR.pm
+++ b/SL/IR.pm
@@ -270,32 +270,32 @@ sub post_invoice {
             # allocated >= 0
             # add entry for inventory, this one is for the sold item
             $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, tax_id) VALUES (?, ?, ?, ?,
-                               (SELECT taxkey_id 
-                                FROM taxkeys 
+                               (SELECT taxkey_id
+                                FROM taxkeys
                                 WHERE chart_id= ?
                                 AND startdate <= ?
                                 ORDER BY startdate DESC LIMIT 1),
-                               (SELECT tax_id 
-                                FROM taxkeys 
+                               (SELECT tax_id
+                                FROM taxkeys
                                 WHERE chart_id= ?
                                 AND startdate <= ?
                                 ORDER BY startdate DESC LIMIT 1),
                                (SELECT chart_link FROM chart WHERE id = ?))|;
-            @values = ($ref->{trans_id},  $ref->{inventory_accno_id}, $linetotal, $ref->{transdate}, $ref->{inventory_accno_id}, $ref->{transdate}, $ref->{inventory_accno_id}, $ref->{transdate}, 
+            @values = ($ref->{trans_id},  $ref->{inventory_accno_id}, $linetotal, $ref->{transdate}, $ref->{inventory_accno_id}, $ref->{transdate}, $ref->{inventory_accno_id}, $ref->{transdate},
                        $ref->{inventory_accno_id});
             do_query($form, $dbh, $query, @values);
 
 # add expense
             $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, tax_id) VALUES (?, ?, ?, ?,
-                                (SELECT taxkey_id 
-                                 FROM taxkeys 
+                                (SELECT taxkey_id
+                                 FROM taxkeys
                                  WHERE chart_id= ?
-                                 AND startdate <= ? 
+                                 AND startdate <= ?
                                  ORDER BY startdate DESC LIMIT 1),
-                                (SELECT tax_id 
-                                 FROM taxkeys 
+                                (SELECT tax_id
+                                 FROM taxkeys
                                  WHERE chart_id= ?
-                                 AND startdate <= ? 
+                                 AND startdate <= ?
                                  ORDER BY startdate DESC LIMIT 1),
                                 (SELECT chart_link FROM chart WHERE id = ?))|;
             @values = ($ref->{trans_id},  $ref->{expense_accno_id}, ($linetotal * -1), $ref->{transdate}, $ref->{expense_accno_id}, $ref->{transdate}, $ref->{expense_accno_id}, $ref->{transdate},
@@ -504,20 +504,20 @@ sub post_invoice {
 
       $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, project_id, tax_id, chart_link)
                   VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                  (SELECT taxkey_id 
-                   FROM taxkeys 
-                   WHERE chart_id= (SELECT id  
-                                    FROM chart 
-                                    WHERE accno = ?) 
-                   AND startdate <= ? 
+                  (SELECT taxkey_id
+                   FROM taxkeys
+                   WHERE chart_id= (SELECT id
+                                    FROM chart
+                                    WHERE accno = ?)
+                   AND startdate <= ?
                    ORDER BY startdate DESC LIMIT 1),
                   ?,
-                  (SELECT tax_id 
-                   FROM taxkeys 
-                   WHERE chart_id= (SELECT id  
-                                    FROM chart 
-                                    WHERE accno = ?) 
-                   AND startdate <= ? 
+                  (SELECT tax_id
+                   FROM taxkeys
+                   WHERE chart_id= (SELECT id
+                                    FROM chart
+                                    WHERE accno = ?)
+                   AND startdate <= ?
                    ORDER BY startdate DESC LIMIT 1),
                   (SELECT link FROM chart WHERE accno = ?))|;
       @values = ($trans_id, $accno, $form->{amount}{$trans_id}{$accno},
@@ -558,20 +558,20 @@ sub post_invoice {
     if ($form->{amount}{ $form->{id} }{ $form->{AP} } != 0) {
       $query = qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, taxkey, project_id, tax_id, chart_link)
                   VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                          (SELECT taxkey_id 
-                           FROM taxkeys 
-                           WHERE chart_id= (SELECT id  
-                                            FROM chart 
-                                            WHERE accno = ?) 
-                           AND startdate <= ? 
+                          (SELECT taxkey_id
+                           FROM taxkeys
+                           WHERE chart_id= (SELECT id
+                                            FROM chart
+                                            WHERE accno = ?)
+                           AND startdate <= ?
                            ORDER BY startdate DESC LIMIT 1),
                           ?,
-                          (SELECT tax_id 
-                           FROM taxkeys 
-                           WHERE chart_id= (SELECT id  
-                                            FROM chart 
-                                            WHERE accno = ?) 
-                           AND startdate <= ? 
+                          (SELECT tax_id
+                           FROM taxkeys
+                           WHERE chart_id= (SELECT id
+                                            FROM chart
+                                            WHERE accno = ?)
+                           AND startdate <= ?
                            ORDER BY startdate DESC LIMIT 1),
                           (SELECT link FROM chart WHERE accno = ?))|;
       @values = (conv_i($form->{id}), $form->{AP}, $amount,
@@ -585,18 +585,18 @@ sub post_invoice {
     $query =
       qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, source, memo, taxkey, project_id, tax_id, chart_link)
                 VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?, ?,
-                (SELECT taxkey_id 
-                 FROM taxkeys 
-                 WHERE chart_id= (SELECT id  
-                                  FROM chart WHERE accno = ?) 
-                 AND startdate <= ? 
+                (SELECT taxkey_id
+                 FROM taxkeys
+                 WHERE chart_id= (SELECT id
+                                  FROM chart WHERE accno = ?)
+                 AND startdate <= ?
                  ORDER BY startdate DESC LIMIT 1),
                 ?,
-                (SELECT tax_id 
-                 FROM taxkeys 
-                 WHERE chart_id= (SELECT id  
-                                  FROM chart WHERE accno = ?) 
-                 AND startdate <= ? 
+                (SELECT tax_id
+                 FROM taxkeys
+                 WHERE chart_id= (SELECT id
+                                  FROM chart WHERE accno = ?)
+                 AND startdate <= ?
                  ORDER BY startdate DESC LIMIT 1),
                 (SELECT link FROM chart WHERE accno = ?))|;
     @values = (conv_i($form->{id}), $accno, $form->{"paid_$i"}, $form->{"datepaid_$i"},
@@ -1314,7 +1314,6 @@ sub retrieve_item {
     my $i = 0;
     while (my $ptr = $stw->fetchrow_hashref("NAME_lc")) {
 
-      #    if ($customertax{$ref->{accno}}) {
       if (($ptr->{accno} eq "") && ($ptr->{rate} == 0)) {
         $i++;
         $ptr->{accno} = $i;
index 052dcfd..1deeb2a 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -863,19 +863,19 @@ sub post_invoice {
         $query =
           qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, tax_id, taxkey, project_id, chart_link)
              VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                     (SELECT tax_id 
-                      FROM taxkeys 
-                      WHERE chart_id= (SELECT id  
-                                       FROM chart 
-                                       WHERE accno = ?) 
-                      AND startdate <= ? 
+                     (SELECT tax_id
+                      FROM taxkeys
+                      WHERE chart_id= (SELECT id
+                                       FROM chart
+                                       WHERE accno = ?)
+                      AND startdate <= ?
                       ORDER BY startdate DESC LIMIT 1),
                      (SELECT taxkey_id
-                      FROM taxkeys 
-                      WHERE chart_id= (SELECT id  
-                                       FROM chart 
-                                       WHERE accno = ?) 
-                      AND startdate <= ? 
+                      FROM taxkeys
+                      WHERE chart_id= (SELECT id
+                                       FROM chart
+                                       WHERE accno = ?)
+                      AND startdate <= ?
                       ORDER BY startdate DESC LIMIT 1),
                      ?,
                      (SELECT link FROM chart WHERE accno = ?))|;
@@ -892,19 +892,19 @@ sub post_invoice {
         $query =
           qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, tax_id, taxkey, project_id, chart_link)
              VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                     (SELECT tax_id 
-                      FROM taxkeys 
-                      WHERE chart_id= (SELECT id 
-                                       FROM chart 
-                                       WHERE accno = ?) 
-                      AND startdate <= ? 
+                     (SELECT tax_id
+                      FROM taxkeys
+                      WHERE chart_id= (SELECT id
+                                       FROM chart
+                                       WHERE accno = ?)
+                      AND startdate <= ?
                       ORDER BY startdate DESC LIMIT 1),
-                     (SELECT taxkey_id 
-                      FROM taxkeys 
-                      WHERE chart_id= (SELECT id 
-                                       FROM chart 
-                                       WHERE accno = ?) 
-                      AND startdate <= ? 
+                     (SELECT taxkey_id
+                      FROM taxkeys
+                      WHERE chart_id= (SELECT id
+                                       FROM chart
+                                       WHERE accno = ?)
+                      AND startdate <= ?
                       ORDER BY startdate DESC LIMIT 1),
                      ?,
                      (SELECT link FROM chart WHERE accno = ?))|;
@@ -956,19 +956,19 @@ sub post_invoice {
         $query =
         qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, tax_id, taxkey, project_id, chart_link)
            VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?,
-                   (SELECT tax_id 
-                    FROM taxkeys 
-                    WHERE chart_id= (SELECT id  
-                                     FROM chart 
-                                     WHERE accno = ?) 
-                    AND startdate <= ? 
+                   (SELECT tax_id
+                    FROM taxkeys
+                    WHERE chart_id= (SELECT id
+                                     FROM chart
+                                     WHERE accno = ?)
+                    AND startdate <= ?
                     ORDER BY startdate DESC LIMIT 1),
-                   (SELECT taxkey_id 
-                    FROM taxkeys 
-                    WHERE chart_id= (SELECT id  
-                                     FROM chart 
-                                     WHERE accno = ?) 
-                    AND startdate <= ? 
+                   (SELECT taxkey_id
+                    FROM taxkeys
+                    WHERE chart_id= (SELECT id
+                                     FROM chart
+                                     WHERE accno = ?)
+                    AND startdate <= ?
                     ORDER BY startdate DESC LIMIT 1),
                    ?,
                    (SELECT link FROM chart WHERE accno = ?))|;
@@ -983,19 +983,19 @@ sub post_invoice {
       $query =
       qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, source, memo, tax_id, taxkey, project_id, chart_link)
          VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?, ?,
-                 (SELECT tax_id 
-                  FROM taxkeys 
-                  WHERE chart_id= (SELECT id  
-                                   FROM chart 
-                                   WHERE accno = ?) 
-                  AND startdate <= ? 
+                 (SELECT tax_id
+                  FROM taxkeys
+                  WHERE chart_id= (SELECT id
+                                   FROM chart
+                                   WHERE accno = ?)
+                  AND startdate <= ?
                   ORDER BY startdate DESC LIMIT 1),
-                 (SELECT taxkey_id 
-                  FROM taxkeys 
-                  WHERE chart_id= (SELECT id  
-                                   FROM chart 
-                                   WHERE accno = ?) 
-                  AND startdate <= ? 
+                 (SELECT taxkey_id
+                  FROM taxkeys
+                  WHERE chart_id= (SELECT id
+                                   FROM chart
+                                   WHERE accno = ?)
+                  AND startdate <= ?
                   ORDER BY startdate DESC LIMIT 1),
                  ?,
                  (SELECT link FROM chart WHERE accno = ?))|;
@@ -1042,19 +1042,19 @@ sub post_invoice {
         $query =
           qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, cleared, fx_transaction, tax_id, taxkey, project_id, chart_link)
              VALUES (?, (SELECT id FROM chart WHERE accno = ?), ?, ?, '0', '1',
-                 (SELECT tax_id 
-                  FROM taxkeys 
-                  WHERE chart_id= (SELECT id  
-                                   FROM chart 
-                                   WHERE accno = ?) 
-                  AND startdate <= ? 
+                 (SELECT tax_id
+                  FROM taxkeys
+                  WHERE chart_id= (SELECT id
+                                   FROM chart
+                                   WHERE accno = ?)
+                  AND startdate <= ?
                   ORDER BY startdate DESC LIMIT 1),
-                 (SELECT taxkey_id 
-                  FROM taxkeys 
-                  WHERE chart_id= (SELECT id  
-                                   FROM chart 
-                                   WHERE accno = ?) 
-                  AND startdate <= ? 
+                 (SELECT taxkey_id
+                  FROM taxkeys
+                  WHERE chart_id= (SELECT id
+                                   FROM chart
+                                   WHERE accno = ?)
+                  AND startdate <= ?
                   ORDER BY startdate DESC LIMIT 1),
                  ?,
                  (SELECT link FROM chart WHERE accno = ?))|;
@@ -2034,7 +2034,6 @@ sub retrieve_item {
     my $i = 0;
     while (my $ptr = $stw->fetchrow_hashref('NAME_lc')) {
 
-      #    if ($customertax{$ref->{accno}})
       if (($ptr->{accno} eq "") && ($ptr->{rate} == 0)) {
         $i++;
         $ptr->{accno} = $i;
index 4cd79c4..d740640 100644 (file)
@@ -13,6 +13,7 @@ sub stylesheets {
 
 sub javascripts_inline {
   my $self = shift;
+  $self->SUPER::javascripts_inline;
   my $sections = [ section_menu($self->menu) ];
   $self->render('menu/menu', { output => 0 },
     sections  => $sections,
index 50ab2f8..60b8512 100644 (file)
@@ -3,6 +3,8 @@ package SL::Layout::None;
 use strict;
 use parent qw(SL::Layout::Base);
 
+use List::MoreUtils qw(apply);
+
 sub javascripts_inline {
   _setup_formats(),
   _setup_focus(),
@@ -27,7 +29,13 @@ sub use_stylesheet {
 }
 
 sub _setup_formats {
-  $::form->parse_html_template('layout/javascript_setup')
+  my $datefmt = apply {
+    s/d+/dd/gi;
+    s/m+/mm/gi;
+    s/y+/yy/gi;
+  } $::myconfig{dateformat};
+
+  $::form->parse_html_template('layout/javascript_setup', { datefmt => $datefmt });
 }
 
 sub _setup_focus {
index f1aaf7f..c078450 100644 (file)
@@ -24,7 +24,7 @@ sub ar_transaction {
 sub purchase_invoice {
   my ($self, $invoice, %params) = @_;
 
-  return _is_ir_record($self, $invoice, 'is', %params);
+  return _is_ir_record($self, $invoice, 'ir', %params);
 }
 
 sub ap_transaction {
index db0caa5..18c7190 100644 (file)
@@ -20,8 +20,7 @@ sub _arrayify {
 sub grouped_record_list {
   my ($self, $list, %params) = @_;
 
-  %params                = map { exists $params{$_} ? ($_ => $params{$_}) : () } qw(edit_record_links form_prefix with_columns object_id object_model);
-  $params{form_prefix} ||= 'record_links';
+  %params    = map { exists $params{$_} ? ($_ => $params{$_}) : () } qw(edit_record_links with_columns object_id object_model);
 
   my %groups = _group_records($list);
   my $output = '';
@@ -38,14 +37,14 @@ sub grouped_record_list {
   $output .= _purchase_invoice_list(       $self, $groups{purchase_invoices},        %params) if $groups{purchase_invoices};
   $output .= _ar_transaction_list(         $self, $groups{ar_transactions},          %params) if $groups{ar_transactions};
 
-  $output  = $self->render('presenter/record/grouped_record_list', %params, output => $output, nownow => DateTime->now) if $output;
+  $output  = $self->render('presenter/record/grouped_record_list', %params, output => $output);
 
-  return $output || $self->empty_record_list;
+  return $output;
 }
 
 sub empty_record_list {
-  my ($self) = @_;
-  return $self->render('presenter/record/empty_record_list');
+  my ($self, %params) = @_;
+  return $self->grouped_record_list([], %params);
 }
 
 sub record_list {
@@ -121,8 +120,6 @@ sub record_list {
            alignment => $data[0]->{columns}->[$_]->{alignment},
          }, (0..scalar(@columns) - 1);
 
-  $params{form_prefix} ||= 'record_links';
-
   return $self->render(
     'presenter/record/record_list',
     %params,
@@ -168,6 +165,7 @@ sub _sales_quotation_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Sales Quotations'),
+    type    => 'sales_quotation',
     columns => [
       [ $::locale->text('Quotation Date'),          'transdate'                                                                ],
       [ $::locale->text('Quotation Number'),        sub { $self->sales_quotation($_[0], display => 'table-cell') }   ],
@@ -187,9 +185,10 @@ sub _request_quotation_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Request Quotations'),
+    type    => 'request_quotation',
     columns => [
       [ $::locale->text('Quotation Date'),          'transdate'                                                                ],
-      [ $::locale->text('Quotation Number'),        sub { $self->sales_quotation($_[0], display => 'table-cell') }   ],
+      [ $::locale->text('Quotation Number'),        sub { $self->request_quotation($_[0], display => 'table-cell') }   ],
       [ $::locale->text('Vendor'),                  'vendor'                                                                   ],
       [ $::locale->text('Net amount'),              'netamount'                                                                ],
       [ $::locale->text('Transaction description'), 'transaction_description'                                                  ],
@@ -206,6 +205,7 @@ sub _sales_order_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Sales Orders'),
+    type    => 'sales_order',
     columns => [
       [ $::locale->text('Order Date'),              'transdate'                                                                ],
       [ $::locale->text('Order Number'),            sub { $self->sales_order($_[0], display => 'table-cell') }   ],
@@ -226,9 +226,10 @@ sub _purchase_order_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Purchase Orders'),
+    type    => 'purchase_order',
     columns => [
       [ $::locale->text('Order Date'),              'transdate'                                                                ],
-      [ $::locale->text('Order Number'),            sub { $self->sales_order($_[0], display => 'table-cell') }   ],
+      [ $::locale->text('Order Number'),            sub { $self->purchase_order($_[0], display => 'table-cell') }   ],
       [ $::locale->text('Request for Quotation'),   'quonumber' ],
       [ $::locale->text('Vendor'),                  'vendor'                                                                 ],
       [ $::locale->text('Net amount'),              'netamount'                                                                ],
@@ -246,6 +247,7 @@ sub _sales_delivery_order_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Sales Delivery Orders'),
+    type    => 'sales_delivery_order',
     columns => [
       [ $::locale->text('Delivery Order Date'),     'transdate'                                                                ],
       [ $::locale->text('Delivery Order Number'),   sub { $self->sales_delivery_order($_[0], display => 'table-cell') } ],
@@ -266,9 +268,10 @@ sub _purchase_delivery_order_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Purchase Delivery Orders'),
+    type    => 'purchase_delivery_order',
     columns => [
       [ $::locale->text('Delivery Order Date'),     'transdate'                                                                ],
-      [ $::locale->text('Delivery Order Number'),   sub { $self->sales_delivery_order($_[0], display => 'table-cell') } ],
+      [ $::locale->text('Delivery Order Number'),   sub { $self->purchase_delivery_order($_[0], display => 'table-cell') } ],
       [ $::locale->text('Order Number'),            'ordnumber' ],
       [ $::locale->text('Vendor'),                  'vendor'                                                                 ],
       [ $::locale->text('Transaction description'), 'transaction_description'                                                  ],
@@ -286,6 +289,7 @@ sub _sales_invoice_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Sales Invoices'),
+    type    => 'sales_invoice',
     columns => [
       [ $::locale->text('Invoice Date'),            'transdate'               ],
       [ $::locale->text('Invoice Number'),          sub { $self->sales_invoice($_[0], display => 'table-cell') } ],
@@ -306,9 +310,10 @@ sub _purchase_invoice_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('Purchase Invoices'),
+    type    => 'purchase_invoice',
     columns => [
       [ $::locale->text('Invoice Date'),                 'transdate'               ],
-      [ $::locale->text('Invoice Number'),               sub { $self->sales_invoice($_[0], display => 'table-cell') } ],
+      [ $::locale->text('Invoice Number'),               sub { $self->purchase_invoice($_[0], display => 'table-cell') } ],
       [ $::locale->text('Request for Quotation Number'), 'quonumber' ],
       [ $::locale->text('Order Number'),                 'ordnumber' ],
       [ $::locale->text('Vendor'),                       'vendor'                 ],
@@ -326,6 +331,7 @@ sub _ar_transaction_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('AR Transactions'),
+    type    => 'ar_transaction',
     columns => [
       [ $::locale->text('Invoice Date'),            'transdate'               ],
       [ $::locale->text('Invoice Number'),          sub { $self->ar_transaction($_[0], display => 'table-cell') } ],
@@ -344,9 +350,10 @@ sub _ap_transaction_list {
   return $self->record_list(
     $list,
     title   => $::locale->text('AP Transactions'),
+    type    => 'ap_transaction',
     columns => [
       [ $::locale->text('Invoice Date'),            'transdate'                      ],
-      [ $::locale->text('Invoice Number'),          sub { $self->ar_transaction($_[0 ], display => 'table-cell') } ],
+      [ $::locale->text('Invoice Number'),          sub { $self->ap_transaction($_[0 ], display => 'table-cell') } ],
       [ $::locale->text('Vendor'),                  'vendor'                         ],
       [ $::locale->text('Net amount'),              'netamount'                      ],
       [ $::locale->text('Paid'),                    'paid'                           ],
index b6661b5..37b1109 100644 (file)
--- a/SL/RP.pm
+++ b/SL/RP.pm
@@ -1363,9 +1363,7 @@ sub tax_report {
   my $sortorder = join ', ', $form->sort_columns(qw(transdate invnumber name));
   $sortorder = $form->{sort} if ($form->{sort} && grep({ $_ eq $form->{sort} } qw(id transdate invnumber name netamount tax)));
 
-  my $query = '';
-  if ($form->{report} !~ /nontaxable/) {
-    $query =
+  my $query =
       qq|SELECT a.id, '0' AS invoice, $transdate AS transdate, a.invnumber, n.name, a.netamount,
           ac.amount * $ml AS tax
          FROM acc_trans ac
@@ -1387,42 +1385,11 @@ sub tax_report {
          JOIN $table n ON (n.id = a.${table}_id)
          JOIN ${table}tax t ON (t.${table}_id = n.id)
          JOIN invoice i ON (i.trans_id = a.id)
-         JOIN partstax p ON (p.parts_id = i.parts_id)
          WHERE
            $where
            $accno
            AND (a.invoice = '1')
          ORDER BY $sortorder|;
-  } else {
-    # only gather up non-taxable transactions
-    $query =
-      qq|SELECT a.id, '0' AS invoice, $transdate AS transdate, a.invnumber, n.name, a.netamount
-         FROM acc_trans ac
-         JOIN ${arap} a ON (a.id = ac.trans_id)
-         JOIN $table n ON (n.id = a.${table}_id)
-         WHERE
-           $where
-           AND (a.invoice = '0')
-           AND (a.netamount = a.amount)
-
-         UNION
-
-         SELECT a.id, '1' AS invoice, $transdate AS transdate, a.invnumber, n.name, i.sellprice * i.qty AS netamount
-         FROM acc_trans ac
-         JOIN ${arap} a ON (a.id = ac.trans_id)
-         JOIN $table n ON (n.id = a.${table}_id)
-         JOIN invoice i ON (i.trans_id = a.id)
-         WHERE
-           $where
-           AND (a.invoice = '1')
-           AND (
-             a.${table}_id NOT IN (SELECT ${table}_id FROM ${table}tax t (${table}_id))
-             OR
-             i.parts_id NOT IN (SELECT parts_id FROM partstax p (parts_id))
-           )
-         GROUP BY a.id, a.invnumber, $transdate, n.name, i.sellprice, i.qty
-         ORDER by $sortorder|;
-  }
 
   $form->{TR} = selectall_hashref_query($form, $dbh, $query);
 
@@ -1796,89 +1763,6 @@ sub bwa {
   $main::lxdebug->leave_sub();
 }
 
-sub ustva {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my $last_period     = 0;
-  my @categories_cent = qw(51r 511 86r 861 97r 971 93r 931
-    96 66 43 45 53 62 65 67);
-  my @categories_euro = qw(48 51 86 91 97 93 94);
-  $form->{decimalplaces} *= 1;
-
-  foreach my $item (@categories_cent) {
-    $form->{"$item"} = 0;
-  }
-  foreach my $item (@categories_euro) {
-    $form->{"$item"} = 0;
-  }
-
-  &get_accounts_g($dbh, $last_period, $form->{fromdate}, $form->{todate}, $form, "pos_ustva");
-
-  #   foreach $item (@categories_cent) {
-  #     if ($form->{$item}{"jetzt"} > 0) {
-  #       $form->{$item} = $form->{$item}{"jetzt"};
-  #       delete $form->{$item}{"jetzt"};
-  #     }
-  #   }
-  #   foreach $item (@categories_euro) {
-  #     if ($form->{$item}{"jetzt"} > 0) {
-  #       $form->{$item} = $form->{$item}{"jetzt"};
-  #       delete $form->{$item}{"jetzt"};
-  #     }  foreach $item (@categories_cent) {
-  #     if ($form->{$item}{"jetzt"} > 0) {
-  #       $form->{$item} = $form->{$item}{"jetzt"};
-  #       delete $form->{$item}{"jetzt"};
-  #     }
-  #   }
-  #   foreach $item (@categories_euro) {
-  #     if ($form->{$item}{"jetzt"} > 0) {
-  #       $form->{$item} = $form->{$item}{"jetzt"};
-  #       delete $form->{$item}{"jetzt"};
-  #     }
-  #   }
-  #
-  #    }
-
-  #
-  # Berechnung der USTVA Formularfelder
-  #
-  $form->{"51r"} = $form->{"511"};
-  $form->{"86r"} = $form->{"861"};
-  $form->{"97r"} = $form->{"971"};
-  $form->{"93r"} = $form->{"931"};
-
-  #$form->{"96"}  = $form->{"94"} * 0.16;
-  $form->{"43"} =
-    $form->{"51r"} + $form->{"86r"} + $form->{"97r"} + $form->{"93r"} +
-    $form->{"96"};
-  $form->{"45"} = $form->{"43"};
-  $form->{"53"} = $form->{"43"};
-  $form->{"62"} = $form->{"43"} - $form->{"66"};
-  $form->{"65"} = $form->{"43"} - $form->{"66"};
-  $form->{"67"} = $form->{"43"} - $form->{"66"};
-
-  foreach my $item (@categories_cent) {
-    $form->{$item} =
-      $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),
-                           2, '0');
-  }
-
-  foreach my $item (@categories_euro) {
-    $form->{$item} =
-      $form->format_amount($myconfig, $form->round_amount($form->{$item}, 0),
-                           0, '0');
-  }
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
 sub income_statement {
   $main::lxdebug->enter_sub();
 
index 871e683..bac6f7f 100644 (file)
@@ -358,41 +358,23 @@ sub stylesheet_tag {
   return $code;
 }
 
+my $date_tag_id_idx = 0;
 sub date_tag {
   my ($self, $name, $value, @slurp) = @_;
+
   my %params   = _hashify(@slurp);
-  my $name_e   = _H($name);
-  my $seq      = _tag_id();
-  my $datefmt  = apply {
-    s/d+/\%d/gi;
-    s/m+/\%m/gi;
-    s/y+/\%Y/gi;
-  } $::myconfig{"dateformat"};
-
-  my $cal_align = delete $params{cal_align} || 'BR';
-  my $onchange  = delete $params{onchange};
-  my $str_value = blessed $value ? $value->to_lxoffice : $value;
-
-  $self->input_tag($name, $str_value,
-    id     => $name_e,
+  my $id       = $self->name_to_id($name) . _tag_id();
+  my @onchange = $params{onchange} ? (onChange => delete $params{onchange}) : ();
+  my @class    = $params{no_cal} || $params{readonly} ? () : (class => 'datepicker');
+
+  return $self->input_tag(
+    $name, blessed($value) ? $value->to_lxoffice : $value,
+    id     => $id,
     size   => 11,
-    title  => _H($::myconfig{dateformat}),
-    onBlur => 'check_right_date_format(this)',
-    ($onchange ? (
-    onChange => $onchange,
-    ) : ()),
+    onblur => "check_right_date_format(this);",
     %params,
-  ) . ((!$params{no_cal} && !$params{readonly}) ?
-  $self->html_tag('img', undef,
-    src    => 'image/calendar.png',
-    alt    => $::locale->text('Calendar'),
-    id     => "trigger$seq",
-    title  => _H($::myconfig{dateformat}),
-    %params,
-  ) .
-  $self->javascript(
-    "Calendar.setup({ inputField: '$name_e', ifFormat: '$datefmt', align: '$cal_align', button: 'trigger$seq' });"
-  ) : '');
+    @class, @onchange,
+  );
 }
 
 sub customer_picker {
@@ -829,13 +811,10 @@ If C<%attributes> contains a key C<checkall> then the value is taken as a
 JQuery selector and clicking this checkbox will also toggle all checkboxes
 matching the selector.
 
-=item C<date_tag $name, $value, cal_align =E<gt> $align_code, %attributes>
+=item C<date_tag $name, $value, %attributes>
 
 Creates a date input field, with an attached javascript that will open a
-calendar on click. The javascript ist by default anchoered at the bottom right
-sight. This can be overridden with C<cal_align>, see Calendar documentation for
-the details, usually you'll want a two letter abbreviation of the alignment.
-Right + Bottom becomes C<BL>.
+calendar on click.
 
 =item C<radio_button_tag $name, %attributes>
 
@@ -861,14 +840,6 @@ for each file name parameter passed. Each file name will be postfixed
 with '.css' if it isn't already and prefixed with 'css/' if it doesn't
 contain a slash.
 
-=item C<date_tag $name, $value, cal_align =E<gt> $align_code, %attributes>
-
-Creates a date input field, with an attached javascript that will open a
-calendar on click. The javascript ist by default anchoered at the bottom right
-sight. This can be overridden with C<cal_align>, see Calendar documentation for
-the details, usually you'll want a two letter abbreviation of the alignment.
-Right + Bottom becomes C<BL>.
-
 =item C<tabbed \@tab, %attributes>
 
 Will create a tabbed area. The tabs should be created with the helper function
diff --git a/SL/Template/Plugin/MultiColumnIterator.pm b/SL/Template/Plugin/MultiColumnIterator.pm
deleted file mode 100644 (file)
index 7ce3aeb..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-package SL::Template::Plugin::MultiColumnIterator;
-
-use base 'Template::Plugin';
-use Template::Constants;
-use Template::Exception;
-use Template::Iterator;
-use SL::LXDebug;
-use Data::Dumper;
-
-use strict;
-
-our $AUTOLOAD;
-
-sub new {
-    $main::lxdebug->enter_sub();
-    my $class   = shift;
-    my $context = shift;
-    my $data    = shift || [ ];
-    my $dim     = shift || 1;
-
-    $dim        = 1 if $dim < 1;
-
-    use vars qw(@ISA);
-    push @ISA, "Template::Iterator";
-
-    if (ref $data eq 'HASH') {
-        # map a hash into a list of { key => ???, value => ??? } hashes,
-        # one for each key, sorted by keys
-        $data = [ map { { key => $_, value => $data->{ $_ } } }
-                  sort keys %$data ];
-    }
-    elsif (UNIVERSAL::can($data, 'as_list')) {
-        $data = $data->as_list();
-    }
-    elsif (ref $data ne 'ARRAY') {
-        # coerce any non-list data into an array reference
-        $data  = [ $data ] ;
-    }
-
-    $main::lxdebug->leave_sub();
-
-    bless {
-        _DATA  => $data,
-        _ERROR => '',
-        _DIM   => $dim,
-    }, $class;
-}
-
-
-sub get_first {
-    $main::lxdebug->enter_sub();
-    my $self  = shift;
-    my $data  = $self->{ _DATA };
-    my $dim   = $self->{ _DIM  };
-
-    $self->{ _DATASET } = $self->{ _DATA };
-    my $size = int ((scalar @$data - 1) / $dim) + 1;
-    my $index = 0;
-
-    return (undef, Template::Constants::STATUS_DONE) unless $size;
-
-    # initialise various counters, flags, etc.
-    @$self{ qw( SIZE MAX INDEX COUNT FIRST LAST ) } = ( $size, $size - 1, $index, 1, 1, $size > 1 ? 0 : 1, undef );
-    @$self{ qw( PREV ) } = ( undef );
-    $$self{ qw( NEXT ) } = [ @{ $self->{ _DATASET }  }[ map { $index + 1 + $_ * $size } 0 .. ($dim - 1) ] ];
-
-    $main::lxdebug->leave_sub();
-    return [ @{ $self->{ _DATASET } }[ map { $index + $_ * $size } 0 .. ($dim - 1) ] ];
-}
-
-sub get_next {
-    $main::lxdebug->enter_sub();
-    my $self = shift;
-    my ($max, $index) = @$self{ qw( MAX INDEX ) };
-    my $data = $self->{ _DATASET };
-    my $dim  = $self->{ _DIM  };
-    my $size = $self->{ SIZE  };
-
-    # warn about incorrect usage
-    unless (defined $index) {
-        my ($pack, $file, $line) = caller();
-        warn("iterator get_next() called before get_first() at $file line $line\n");
-        return (undef, Template::Constants::STATUS_DONE);   ## RETURN ##
-    }
-
-    # if there's still some data to go...
-    if ($index < $max) {
-        # update counters and flags
-        $index++;
-        @$self{ qw( INDEX COUNT FIRST LAST ) } = ( $index, $index + 1, 0, $index == $max ? 1 : 0 );
-        $$self{ qw( PREV ) } = [ @{ $self->{ _DATASET } }[ map { $index - 1 + $_ * $size } 0 .. ($dim - 1) ] ];
-        $$self{ qw( NEXT ) } = [ @{ $self->{ _DATASET } }[ map { $index + 1 + $_ * $size } 0 .. ($dim - 1) ] ];
-        $main::lxdebug->leave_sub();
-        return [ @{ $self->{ _DATASET } }[ map { $index + $_ * $size } 0 .. ($dim - 1) ] ];
-    }
-    else {
-        $main::lxdebug->leave_sub();
-        return (undef, Template::Constants::STATUS_DONE);   ## RETURN ##
-    }
-}
-
-sub get_all {
-    my $self = shift;
-    my ($max, $index, $dim, $size) = @$self{ qw( MAX INDEX _DIM SIZE) };
-    my (@data, $i);
-
-    # if there's still some data to go...
-    if ($index < $max) {
-        $index++;
-        @data = map do{ !($i = $_) || +[ @{ $self->{ _DATASET } }[ map { $i + $_ * $size } 0 .. ($dim - 1) ] ] }, $index .. $max;
-        # update counters and flags
-        @$self{ qw( INDEX COUNT FIRST LAST ) } = ( $max, $max + 1, 0, 1 );
-        $main::lxdebug->leave_sub();
-        return \@data;                                      ## RETURN ##
-    }
-    else {
-        $main::lxdebug->leave_sub();
-        return (undef, Template::Constants::STATUS_DONE);   ## RETURN ##
-    }
-}
-
-sub AUTOLOAD {
-    my $self = shift;
-    my $item = $AUTOLOAD;
-    $item =~ s/.*:://;
-    return if $item eq 'DESTROY';
-
-    # alias NUMBER to COUNT for backwards compatability
-    $item = 'COUNT' if $item =~ /NUMBER/i;
-
-    return $self->{ uc $item };
-}
-
-sub dump {
-    $main::lxdebug->enter_sub();
-    my $self = shift;
-    $main::lxdebug->leave_sub();
-    return join('',
-         "<pre>",
-         "  Data: ", Dumper($self->{ _DATA  }), "\n",
-         " Index: ", $self->{ INDEX  }, "\n",
-         "Number: ", $self->{ NUMBER }, "\n",
-         "   Max: ", $self->{ MAX    }, "\n",
-         "  Size: ", $self->{ SIZE   }, "\n",
-         " First: ", $self->{ FIRST  }, "\n",
-         "  Last: ", $self->{ LAST   }, "\n",
-         "\n",
-         "</pre>"
-     );
-}
-
-sub index {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ INDEX };
-}
-
-sub number {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ NUMBER };
-}
-
-sub count {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ COUNT };
-}
-sub max {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ MAX };
-}
-
-sub size {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ SIZE };
-}
-
-sub first {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ FIRST };
-}
-
-sub last {
-  $main::lxdebug->enter_sub();
-  my ($self) = @_;
-  $main::lxdebug->leave_sub();
-  return $self->{ LAST};
-}
-
-1;
index c9ce8a7..e9df309 100644 (file)
@@ -153,7 +153,6 @@ sub show_invoices {
                                           'no_html'         => 1,
                                           'no_opendocument' => 1,);
 
-  $::request->layout->use_javascript('jquery.checkall.js');
   $form->header();
   print $form->parse_html_template("dunning/show_invoices");
 
index 3080e42..248bbb1 100644 (file)
@@ -314,7 +314,6 @@ sub form_header {
   $form->{follow_up_trans_info} = $form->{donumber} .'('. $follow_up_vc .')';
 
   $::request->layout->use_stylesheet('presenter/record/record_list.css');
-  $::request->layout->use_javascript('jquery.checkall.js');
 
   $form->header();
   # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID'
index 1436963..3f67961 100644 (file)
@@ -358,6 +358,7 @@ sub form_header {
   map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}];
 
   $form->{jsscript} = 1;
+  $::request->layout->use_stylesheet('presenter/record/record_list.css');
   $form->header();
 
   print $form->parse_html_template("ir/form_header", \%TMPL_VAR);
index 6184128..2f6f620 100644 (file)
@@ -380,6 +380,7 @@ sub form_header {
   map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}];
 
   $form->{jsscript} = 1;
+  $::request->layout->use_stylesheet('presenter/record/record_list.css');
   $form->header();
 
   print $form->parse_html_template("is/form_header", \%TMPL_VAR);
index 26d6070..f7f3375 100644 (file)
@@ -434,6 +434,8 @@ sub form_header {
   $form->{javascript} .= qq|<script type="text/javascript" src="js/show_history.js"></script>|;
   $form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|;
 
+  $::request->layout->use_stylesheet('presenter/record/record_list.css');
+
   $form->header;
 
   $TMPL_VAR{HIDDENS} = [ map { name => $_, value => $form->{$_} },
index 9f6d848..c3a13da 100644 (file)
@@ -94,8 +94,6 @@ use strict;
 # $locale->text('Receipts')
 # $locale->text('Payments')
 # $locale->text('Project Transactions')
-# $locale->text('Non-taxable Sales')
-# $locale->text('Non-taxable Purchases')
 # $locale->text('Business evaluation')
 
 # $form->parse_html_template('rp/html_report_susa')
@@ -134,8 +132,6 @@ sub report {
     ap_aging             => $::locale->text('Search AP Aging'),
     tax_collected        => $::locale->text('Tax collected'),
     tax_paid             => $::locale->text('Tax paid'),
-    nontaxable_sales     => $::locale->text('Non-taxable Sales'),
-    nontaxable_purchases => $::locale->text('Non-taxable Purchases'),
     receipts             => $::locale->text('Receipts'),
     payments             => $::locale->text('Payments'),
     projects             => $::locale->text('Project Transactions'),
index 3b6ba95..518b9a8 100755 (executable)
@@ -58,7 +58,6 @@ sub bank_transfer_add {
     $invoice->{reference_prefix}  = $prefix;
   }
 
-  $::request->layout->use_javascript('jquery.checkall.js');
   $form->header();
   print $form->parse_html_template('sepa/bank_transfer_add',
                                    { 'INVOICES'           => $invoices,
@@ -187,8 +186,6 @@ sub bank_transfer_list {
   my $cgi    = $::request->{cgi};
   my $vc     = $form->{vc} eq 'customer' ? 'customer' : 'vendor';
 
-  $::request->layout->use_javascript('jquery.checkall.js');
-
   $form->{title}     = $vc eq 'customer' ? $::locale->text('List of bank collections') : $locale->text('List of bank transfers');
 
   $form->{sort}    ||= 'id';
@@ -333,7 +330,6 @@ sub bank_transfer_edit {
     $form->error($locale->text('That export does not exist.'));
   }
 
-  $::request->layout->use_javascript('jquery.checkall.js');
   $form->{jsscript} = 1;
   $form->{title}    = $locale->text('View SEPA export');
   $form->header();
index 7c07205..be4d593 100644 (file)
@@ -5,14 +5,14 @@
   zoom: 1;
   -webkit-border-radius: 4px;
   border-radius: 4px;
-  border: 1px solid #dddddd;
+  border: 0;
   color: #333333;
   font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif;
   font-size: 1.1em;
   overflow: hidden;
 }
 
-.tabwidget ul {
+.tabwidget ul {
   margin: 0;
   padding: .2em .2em 0;
   outline: 0;
@@ -28,7 +28,7 @@
   margin: 0;
 }
 
-.tabwidget ul::after {
+.tabwidget ul::after {
   content: ".";
   display: block;
   height: 0;
@@ -36,7 +36,7 @@
   visibility: hidden;
 }
 
-.tabwidget ul li {
+.tabwidget ul li {
   list-style: none;
   float: left;
   position: relative;
   color: #1c94c4;
 }
 
-.tabwidget ul li a { float: left; padding: .5em 1em; text-decoration: none; }
-.tabwidget ul li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.tabwidget ul li.ui-tabs-selected a, .tabwidget.ui-tabs-nav li.ui-state-disabled a, .tabwidget.ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.tabwidget ul li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; }
+.tabwidget ul li a { float: left; padding: .5em 1em; text-decoration: none; }
+.tabwidget ul li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.tabwidget ul li.ui-tabs-selected a, .tabwidget.ui-tabs-nav li.ui-state-disabled a, .tabwidget.ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.tabwidget ul li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; }
 
 .tabwidget > div {
   display: none;
+  border: 1px solid #999 !important;
 }
 
 .tabwidget .ui-widget-header {
-  background: #dddddd;
-  border: 1px #dddddd;
+  background: transparent;
+  border: 0px;
   color: #fe5f14;
 }
 
index e302488..e1c2603 100644 (file)
@@ -5,14 +5,14 @@
   zoom: 1;
   -webkit-border-radius: 0;
   border-radius: 0;
-  border: 1px solid #000000;
+  border: 0;
   color: #000000;
   font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif;
   font-size: 1.1em;
   overflow: hidden;
 }
 
-.tabwidget ul {
+.tabwidget ul {
   margin: 0;
   padding: .2em .2em 0;
   outline: 0;
@@ -28,7 +28,7 @@
   margin: 0;
 }
 
-.tabwidget ul::after {
+.tabwidget ul::after {
   content: ".";
   display: block;
   height: 0;
@@ -36,7 +36,7 @@
   visibility: hidden;
 }
 
-.tabwidget ul li {
+.tabwidget ul li {
   list-style: none;
   float: left;
   position: relative;
   color: #000000;
 }
 
-.tabwidget ul li a { float: left; padding: .5em 1em; text-decoration: none; }
-.tabwidget ul li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.tabwidget ul li.ui-tabs-selected a, .tabwidget.ui-tabs-nav li.ui-state-disabled a, .tabwidget.ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.tabwidget ul li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; }
+.tabwidget ul li a { float: left; padding: .5em 1em; text-decoration: none; }
+.tabwidget ul li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.tabwidget ul li.ui-tabs-selected a, .tabwidget.ui-tabs-nav li.ui-state-disabled a, .tabwidget.ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.tabwidget ul li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; }
 
 .tabwidget > div {
   display: none;
+  border: 1px solid black !important;
 }
 
 .tabwidget .ui-widget-header {
-  background: url("../../image/fade.png");
+  background: transparent;
   border: 0;
   color: #000000;
 }
diff --git a/css/presenter/record/record_list.css b/css/presenter/record/record_list.css
new file mode 100644 (file)
index 0000000..59ab177
--- /dev/null
@@ -0,0 +1,37 @@
+/* the overlayed element */
+.record_list_overlay {
+  position: fixed;
+  top: 50%;
+  margin-top: -250px;
+  height: 500px;
+
+  left: 50%;
+  margin-left: -400px;
+  width: 800px;
+
+  background-color: #fff;
+  border: 1px solid #333;
+
+  /* CSS3 styling for latest browsers */
+  box-shadow: 0 0 90px 5px #000;
+  -moz-box-shadow: 0 0 90px 5px #000;
+  -webkit-box-shadow: 0 0 90px #000;
+
+  padding: 10px;
+}
+
+.record_list_overlay .overlay_content {
+  width: 790px;
+  height: 490px;
+  overflow: auto;
+}
+
+.record_list_overlay .close {
+  background-image: url(../../../image/dialog-close.png);
+  position: absolute;
+  right: -16px;
+  top: -16px;
+  cursor: pointer;
+  height: 32px;
+  width: 32px;
+}
diff --git a/image/dialog-close.png b/image/dialog-close.png
new file mode 100644 (file)
index 0000000..b049b68
Binary files /dev/null and b/image/dialog-close.png differ
diff --git a/js/jquery/ui/i18n/jquery.ui.datepicker-de.js b/js/jquery/ui/i18n/jquery.ui.datepicker-de.js
new file mode 100644 (file)
index 0000000..abe75c4
--- /dev/null
@@ -0,0 +1,23 @@
+/* German initialisation for the jQuery UI date picker plugin. */
+/* Written by Milian Wolff (mail@milianw.de). */
+jQuery(function($){
+       $.datepicker.regional['de'] = {
+               closeText: 'Schließen',
+               prevText: '&#x3C;Zurück',
+               nextText: 'Vor&#x3E;',
+               currentText: 'Heute',
+               monthNames: ['Januar','Februar','März','April','Mai','Juni',
+               'Juli','August','September','Oktober','November','Dezember'],
+               monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
+               'Jul','Aug','Sep','Okt','Nov','Dez'],
+               dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
+               dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
+               dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
+               weekHeader: 'KW',
+               dateFormat: 'dd.mm.yy',
+               firstDay: 1,
+               isRTL: false,
+               showMonthAfterYear: false,
+               yearSuffix: ''};
+       $.datepicker.setDefaults($.datepicker.regional['de']);
+});
diff --git a/js/jquery/ui/i18n/jquery.ui.datepicker-en-GB.js b/js/jquery/ui/i18n/jquery.ui.datepicker-en-GB.js
new file mode 100644 (file)
index 0000000..16a096e
--- /dev/null
@@ -0,0 +1,23 @@
+/* English/UK initialisation for the jQuery UI date picker plugin. */
+/* Written by Stuart. */
+jQuery(function($){
+       $.datepicker.regional['en-GB'] = {
+               closeText: 'Done',
+               prevText: 'Prev',
+               nextText: 'Next',
+               currentText: 'Today',
+               monthNames: ['January','February','March','April','May','June',
+               'July','August','September','October','November','December'],
+               monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+               'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+               dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
+               dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+               dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
+               weekHeader: 'Wk',
+               dateFormat: 'dd/mm/yy',
+               firstDay: 1,
+               isRTL: false,
+               showMonthAfterYear: false,
+               yearSuffix: ''};
+       $.datepicker.setDefaults($.datepicker.regional['en-GB']);
+});
diff --git a/js/jquery/ui/i18n/jquery.ui.datepicker-en.js b/js/jquery/ui/i18n/jquery.ui.datepicker-en.js
new file mode 120000 (symlink)
index 0000000..3d99237
--- /dev/null
@@ -0,0 +1 @@
+jquery.ui.datepicker-en-GB.js
\ No newline at end of file
diff --git a/js/jscalendar/calendar-setup.js b/js/jscalendar/calendar-setup.js
deleted file mode 100644 (file)
index 9676429..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
- * ---------------------------------------------------------------------------
- *
- * The DHTML Calendar
- *
- * Details and latest version at:
- * http://dynarch.com/mishoo/calendar.epl
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- *
- * This file defines helper functions for setting up the calendar.  They are
- * intended to help non-programmers get a working calendar on their site
- * quickly.  This script should not be seen as part of the calendar.  It just
- * shows you what one can do with the calendar, while in the same time
- * providing a quick and simple method for setting it up.  If you need
- * exhaustive customization of the calendar creation process feel free to
- * modify this code to suit your needs (this is recommended and much better
- * than modifying calendar.js itself).
- */
-
-// $Id: calendar-setup.js,v 1.15 2004/02/04 08:10:03 mishoo Exp $
-
-/**
- *  This function "patches" an input field (or other element) to use a calendar
- *  widget for date selection.
- *
- *  The "params" is a single object that can have the following properties:
- *
- *    prop. name   | description
- *  -------------------------------------------------------------------------------------------------
- *   inputField    | the ID of an input field to store the date
- *   displayArea   | the ID of a DIV or other element to show the date
- *   button        | ID of a button or other element that will trigger the calendar
- *   eventName     | event that will trigger the calendar, without the "on" prefix (default: "click")
- *   ifFormat      | date format that will be stored in the input field
- *   daFormat      | the date format that will be used to display the date in displayArea
- *   singleClick   | (true/false) wether the calendar is in single click mode or not (default: true)
- *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, "1" means display Monday first, etc.
- *   align         | alignment (default: "Br"); if you don't know what's this see the calendar documentation
- *   range         | array with 2 elements.  Default: [1900, 2999] -- the range of years available
- *   weekNumbers   | (true/false) if it's true (default) the calendar will display week numbers
- *   flat          | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
- *   flatCallback  | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
- *   disableFunc   | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
- *   onSelect      | function that gets called when a date is selected.  You don't _have_ to supply this (the default is generally okay)
- *   onClose       | function that gets called when the calendar is closed.  [default]
- *   onUpdate      | function that gets called after the date is updated in the input field.  Receives a reference to the calendar.
- *   date          | the date that the calendar will be initially displayed to
- *   showsTime     | default: false; if true the calendar will include a time selector
- *   timeFormat    | the time format; can be "12" or "24", default is "12"
- *   electric      | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
- *   step          | configures the step of the years in drop-down boxes; default: 2
- *   position      | configures the calendar absolute position; default: null
- *   cache         | if "true" (but default: "false") it will reuse the same calendar object, where possible
- *   showOthers    | if "true" (but default: "false") it will show days from other months too
- *
- *  None of them is required, they all have default values.  However, if you
- *  pass none of "inputField", "displayArea" or "button" you'll get a warning
- *  saying "nothing to setup".
- */
-Calendar.setup = function (params) {
-       function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
-
-       param_default("inputField",     null);
-       param_default("displayArea",    null);
-       param_default("button",         null);
-       param_default("eventName",      "click");
-       param_default("ifFormat",       "%Y/%m/%d");
-       param_default("daFormat",       "%Y/%m/%d");
-       param_default("singleClick",    true);
-       param_default("disableFunc",    null);
-       param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
-       param_default("firstDay",       1); // defaults to "Sunday" first
-       param_default("align",          "Br");
-       param_default("range",          [1900, 2999]);
-       param_default("weekNumbers",    true);
-       param_default("flat",           null);
-       param_default("flatCallback",   null);
-       param_default("onSelect",       null);
-       param_default("onClose",        null);
-       param_default("onUpdate",       null);
-       param_default("date",           null);
-       param_default("showsTime",      false);
-       param_default("timeFormat",     "24");
-       param_default("electric",       true);
-       param_default("step",           2);
-       param_default("position",       null);
-       param_default("cache",          false);
-       param_default("showOthers",     false);
-
-       var tmp = ["inputField", "displayArea", "button"];
-       for (var i in tmp) {
-               if (typeof params[tmp[i]] == "string") {
-                       params[tmp[i]] = document.getElementById(params[tmp[i]]);
-               }
-       }
-       if (!(params.flat || params.inputField || params.displayArea || params.button)) {
-               alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");
-               return false;
-       }
-
-       function onSelect(cal) {
-               var p = cal.params;
-               var update = (cal.dateClicked || p.electric);
-               if (update && p.flat) {
-                       if (typeof p.flatCallback == "function")
-                               p.flatCallback(cal);
-                       else
-                               alert("No flatCallback given -- doing nothing.");
-                       return false;
-               }
-               if (update && p.inputField) {
-                       p.inputField.value = cal.date.print(p.ifFormat);
-                       if (typeof p.inputField.onchange == "function")
-                               p.inputField.onchange();
-               }
-               if (update && p.displayArea)
-                       p.displayArea.innerHTML = cal.date.print(p.daFormat);
-               if (update && p.singleClick && cal.dateClicked)
-                       cal.callCloseHandler();
-               if (update && typeof p.onUpdate == "function")
-                       p.onUpdate(cal);
-       };
-
-       if (params.flat != null) {
-               if (typeof params.flat == "string")
-                       params.flat = document.getElementById(params.flat);
-               if (!params.flat) {
-                       alert("Calendar.setup:\n  Flat specified but can't find parent.");
-                       return false;
-               }
-               var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
-               cal.showsTime = params.showsTime;
-               cal.time24 = (params.timeFormat == "24");
-               cal.params = params;
-               cal.weekNumbers = params.weekNumbers;
-               cal.setRange(params.range[0], params.range[1]);
-               cal.setDateStatusHandler(params.dateStatusFunc);
-               cal.create(params.flat);
-               cal.show();
-               return false;
-       }
-
-       var triggerEl = params.button || params.displayArea || params.inputField;
-       triggerEl["on" + params.eventName] = function() {
-               var dateEl = params.inputField || params.displayArea;
-               var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
-               var mustCreate = false;
-               var cal = window.calendar;
-               if (!(cal && params.cache)) {
-                       window.calendar = cal = new Calendar(params.firstDay,
-                                                            params.date,
-                                                            params.onSelect || onSelect,
-                                                            params.onClose || function(cal) { cal.hide(); });
-                       cal.showsTime = params.showsTime;
-                       cal.time24 = (params.timeFormat == "24");
-                       cal.weekNumbers = params.weekNumbers;
-                       mustCreate = true;
-               } else {
-                       if (params.date)
-                               cal.setDate(params.date);
-                       cal.hide();
-               }
-               cal.showsOtherMonths = params.showOthers;
-               cal.yearStep = params.step;
-               cal.setRange(params.range[0], params.range[1]);
-               cal.params = params;
-               cal.setDateStatusHandler(params.dateStatusFunc);
-               cal.setDateFormat(dateFmt);
-               if (mustCreate)
-                       cal.create();
-               cal.parseDate(dateEl.value || dateEl.innerHTML);
-               cal.refresh();
-               if (!params.position)
-                       cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
-               else
-                       cal.showAt(params.position[0], params.position[1]);
-               return false;
-       };
-};
diff --git a/js/jscalendar/calendar-win2k-1.css b/js/jscalendar/calendar-win2k-1.css
deleted file mode 100644 (file)
index 2c008c6..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/* The main calendar widget.  DIV containing a table. */
-
-.calendar {
-  position: relative;
-  display: none;
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #d4d0c8;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  font-size: 11px;
-  color: #000;
-  cursor: default;
-  background: #d4d0c8;
-  font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
-  text-align: center;
-  padding: 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar .nav {
-  background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
-  font-weight: bold;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #848078;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
-  border-bottom: 1px solid #000;
-  padding: 2px;
-  text-align: center;
-  background: #f4f0e8;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
-  color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
-  border-top: 2px solid #fff;
-  border-right: 2px solid #000;
-  border-bottom: 2px solid #000;
-  border-left: 2px solid #fff;
-  padding: 0px;
-  background-color: #e4e0d8;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  background-color: #c4c0b8;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
-  width: 2em;
-  text-align: right;
-  padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
-  font-size: 80%;
-  color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
-  color: #faa;
-}
-
-.calendar table .wn {
-  padding: 2px 3px 2px 2px;
-  border-right: 1px solid #000;
-  background: #f4f0e8;
-}
-
-.calendar tbody .rowhilite td {
-  background: #e4e0d8;
-}
-
-.calendar tbody .rowhilite td.wn {
-  background: #d4d0c8;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
-  padding: 1px 3px 1px 1px;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
-  padding: 2px 2px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
-  font-weight: bold;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-  padding: 2px 2px 0px 2px;
-  background: #e4e0d8;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
-  color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
-  font-weight: bold;
-  color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
-  visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
-  display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
-  background: #f4f0e8;
-  padding: 1px;
-  border: 1px solid #000;
-  background: #848078;
-  color: #fff;
-  text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  padding: 1px;
-  background: #e4e0d8;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
-  padding: 2px 0px 0px 2px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
-  position: absolute;
-  display: none;
-  width: 4em;
-  top: 0px;
-  left: 0px;
-  cursor: default;
-  border-top: 1px solid #fff;
-  border-right: 1px solid #000;
-  border-bottom: 1px solid #000;
-  border-left: 1px solid #fff;
-  background: #e4e0d8;
-  font-size: 90%;
-  padding: 1px;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
-  text-align: center;
-  padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
-  width: 4em;
-}
-
-.calendar .combo .active {
-  background: #c4c0b8;
-  padding: 0px;
-  border-top: 1px solid #000;
-  border-right: 1px solid #fff;
-  border-bottom: 1px solid #fff;
-  border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
-  background: #048;
-  color: #fea;
-}
-
-.calendar td.time {
-  border-top: 1px solid #000;
-  padding: 1px 0px;
-  text-align: center;
-  background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
-  padding: 0px 3px 0px 4px;
-  border: 1px solid #889;
-  font-weight: bold;
-  background-color: #fff;
-}
-
-.calendar td.time .ampm {
-  text-align: center;
-}
-
-.calendar td.time .colon {
-  padding: 0px 2px 0px 3px;
-  font-weight: bold;
-}
-
-.calendar td.time span.hilite {
-  border-color: #000;
-  background-color: #766;
-  color: #fff;
-}
-
-.calendar td.time span.active {
-  border-color: #f00;
-  background-color: #000;
-  color: #0f0;
-}
diff --git a/js/jscalendar/calendar.js b/js/jscalendar/calendar.js
deleted file mode 100644 (file)
index 623bbfc..0000000
+++ /dev/null
@@ -1,1765 +0,0 @@
-/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
- * ------------------------------------------------------------------
- *
- * The DHTML Calendar, version 0.9.6 "Keep cool but don't freeze"
- *
- * Details and latest version at:
- * http://dynarch.com/mishoo/calendar.epl
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- */
-
-// $Id: calendar.js,v 1.34 2004/02/06 18:53:11 mishoo Exp $
-
-/** The Calendar object constructor. */
-Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
-       // member variables
-       this.activeDiv = null;
-       this.currentDateEl = null;
-       this.getDateStatus = null;
-       this.timeout = null;
-       this.onSelected = onSelected || null;
-       this.onClose = onClose || null;
-       this.dragging = false;
-       this.hidden = false;
-       this.minYear = 1970;
-       this.maxYear = 2050;
-       this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
-       this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
-       this.isPopup = true;
-       this.weekNumbers = true;
-       this.firstDayOfWeek = firstDayOfWeek; // 0 for Sunday, 1 for Monday, etc.
-       this.showsOtherMonths = false;
-       this.dateStr = dateStr;
-       this.ar_days = null;
-       this.showsTime = false;
-       this.time24 = true;
-       this.yearStep = 2;
-       // HTML elements
-       this.table = null;
-       this.element = null;
-       this.tbody = null;
-       this.firstdayname = null;
-       // Combo boxes
-       this.monthsCombo = null;
-       this.yearsCombo = null;
-       this.hilitedMonth = null;
-       this.activeMonth = null;
-       this.hilitedYear = null;
-       this.activeYear = null;
-       // Information
-       this.dateClicked = false;
-
-       // one-time initializations
-       if (typeof Calendar._SDN == "undefined") {
-               // table of short day names
-               if (typeof Calendar._SDN_len == "undefined")
-                       Calendar._SDN_len = 3;
-               var ar = new Array();
-               for (var i = 8; i > 0;) {
-                       ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
-               }
-               Calendar._SDN = ar;
-               // table of short month names
-               if (typeof Calendar._SMN_len == "undefined")
-                       Calendar._SMN_len = 3;
-               ar = new Array();
-               for (var i = 12; i > 0;) {
-                       ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);
-               }
-               Calendar._SMN = ar;
-       }
-};
-
-// ** constants
-
-/// "static", needed for event handlers.
-Calendar._C = null;
-
-/// detect a special case of "web browser"
-Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
-                  !/opera/i.test(navigator.userAgent) );
-
-Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) );
-
-/// detect Opera browser
-Calendar.is_opera = /opera/i.test(navigator.userAgent);
-
-/// detect KHTML-based browsers
-Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);
-
-// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
-//        library, at some point.
-
-Calendar.getAbsolutePos = function(el) {
-       var SL = 0, ST = 0;
-       var is_div = /^div$/i.test(el.tagName);
-       if (is_div && el.scrollLeft)
-               SL = el.scrollLeft;
-       if (is_div && el.scrollTop)
-               ST = el.scrollTop;
-       var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
-       if (el.offsetParent) {
-               var tmp = this.getAbsolutePos(el.offsetParent);
-               r.x += tmp.x;
-               r.y += tmp.y;
-       }
-       return r;
-};
-
-Calendar.isRelated = function (el, evt) {
-       var related = evt.relatedTarget;
-       if (!related) {
-               var type = evt.type;
-               if (type == "mouseover") {
-                       related = evt.fromElement;
-               } else if (type == "mouseout") {
-                       related = evt.toElement;
-               }
-       }
-       while (related) {
-               if (related == el) {
-                       return true;
-               }
-               related = related.parentNode;
-       }
-       return false;
-};
-
-Calendar.removeClass = function(el, className) {
-       if (!(el && el.className)) {
-               return;
-       }
-       var cls = el.className.split(" ");
-       var ar = new Array();
-       for (var i = cls.length; i > 0;) {
-               if (cls[--i] != className) {
-                       ar[ar.length] = cls[i];
-               }
-       }
-       el.className = ar.join(" ");
-};
-
-Calendar.addClass = function(el, className) {
-       Calendar.removeClass(el, className);
-       el.className += " " + className;
-};
-
-Calendar.getElement = function(ev) {
-       if (Calendar.is_ie) {
-               return window.event.srcElement;
-       } else {
-               return ev.currentTarget;
-       }
-};
-
-Calendar.getTargetElement = function(ev) {
-       if (Calendar.is_ie) {
-               return window.event.srcElement;
-       } else {
-               return ev.target;
-       }
-};
-
-Calendar.stopEvent = function(ev) {
-       ev || (ev = window.event);
-       if (Calendar.is_ie) {
-               ev.cancelBubble = true;
-               ev.returnValue = false;
-       } else {
-               ev.preventDefault();
-               ev.stopPropagation();
-       }
-       return false;
-};
-
-Calendar.addEvent = function(el, evname, func) {
-       if (el.attachEvent) { // IE
-               el.attachEvent("on" + evname, func);
-       } else if (el.addEventListener) { // Gecko / W3C
-               el.addEventListener(evname, func, true);
-       } else {
-               el["on" + evname] = func;
-       }
-};
-
-Calendar.removeEvent = function(el, evname, func) {
-       if (el.detachEvent) { // IE
-               el.detachEvent("on" + evname, func);
-       } else if (el.removeEventListener) { // Gecko / W3C
-               el.removeEventListener(evname, func, true);
-       } else {
-               el["on" + evname] = null;
-       }
-};
-
-Calendar.createElement = function(type, parent) {
-       var el = null;
-       if (document.createElementNS) {
-               // use the XHTML namespace; IE won't normally get here unless
-               // _they_ "fix" the DOM2 implementation.
-               el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
-       } else {
-               el = document.createElement(type);
-       }
-       if (typeof parent != "undefined") {
-               parent.appendChild(el);
-       }
-       return el;
-};
-
-// END: UTILITY FUNCTIONS
-
-// BEGIN: CALENDAR STATIC FUNCTIONS
-
-/** Internal -- adds a set of events to make some element behave like a button. */
-Calendar._add_evs = function(el) {
-       with (Calendar) {
-               addEvent(el, "mouseover", dayMouseOver);
-               addEvent(el, "mousedown", dayMouseDown);
-               addEvent(el, "mouseout", dayMouseOut);
-               if (is_ie) {
-                       addEvent(el, "dblclick", dayMouseDblClick);
-                       el.setAttribute("unselectable", true);
-               }
-       }
-};
-
-Calendar.findMonth = function(el) {
-       if (typeof el.month != "undefined") {
-               return el;
-       } else if (typeof el.parentNode.month != "undefined") {
-               return el.parentNode;
-       }
-       return null;
-};
-
-Calendar.findYear = function(el) {
-       if (typeof el.year != "undefined") {
-               return el;
-       } else if (typeof el.parentNode.year != "undefined") {
-               return el.parentNode;
-       }
-       return null;
-};
-
-Calendar.showMonthsCombo = function () {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       var cal = cal;
-       var cd = cal.activeDiv;
-       var mc = cal.monthsCombo;
-       if (cal.hilitedMonth) {
-               Calendar.removeClass(cal.hilitedMonth, "hilite");
-       }
-       if (cal.activeMonth) {
-               Calendar.removeClass(cal.activeMonth, "active");
-       }
-       var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
-       Calendar.addClass(mon, "active");
-       cal.activeMonth = mon;
-       var s = mc.style;
-       s.display = "block";
-       if (cd.navtype < 0)
-               s.left = cd.offsetLeft + "px";
-       else {
-               var mcw = mc.offsetWidth;
-               if (typeof mcw == "undefined")
-                       // Konqueror brain-dead techniques
-                       mcw = 50;
-               s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
-       }
-       s.top = (cd.offsetTop + cd.offsetHeight) + "px";
-};
-
-Calendar.showYearsCombo = function (fwd) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       var cal = cal;
-       var cd = cal.activeDiv;
-       var yc = cal.yearsCombo;
-       if (cal.hilitedYear) {
-               Calendar.removeClass(cal.hilitedYear, "hilite");
-       }
-       if (cal.activeYear) {
-               Calendar.removeClass(cal.activeYear, "active");
-       }
-       cal.activeYear = null;
-       var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
-       var yr = yc.firstChild;
-       var show = false;
-       for (var i = 12; i > 0; --i) {
-               if (Y >= cal.minYear && Y <= cal.maxYear) {
-                       yr.firstChild.data = Y;
-                       yr.year = Y;
-                       yr.style.display = "block";
-                       show = true;
-               } else {
-                       yr.style.display = "none";
-               }
-               yr = yr.nextSibling;
-               Y += fwd ? cal.yearStep : -cal.yearStep;
-       }
-       if (show) {
-               var s = yc.style;
-               s.display = "block";
-               if (cd.navtype < 0)
-                       s.left = cd.offsetLeft + "px";
-               else {
-                       var ycw = yc.offsetWidth;
-                       if (typeof ycw == "undefined")
-                               // Konqueror brain-dead techniques
-                               ycw = 50;
-                       s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
-               }
-               s.top = (cd.offsetTop + cd.offsetHeight) + "px";
-       }
-};
-
-// event handlers
-
-Calendar.tableMouseUp = function(ev) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       if (cal.timeout) {
-               clearTimeout(cal.timeout);
-       }
-       var el = cal.activeDiv;
-       if (!el) {
-               return false;
-       }
-       var target = Calendar.getTargetElement(ev);
-       ev || (ev = window.event);
-       Calendar.removeClass(el, "active");
-       if (target == el || target.parentNode == el) {
-               Calendar.cellClick(el, ev);
-       }
-       var mon = Calendar.findMonth(target);
-       var date = null;
-       if (mon) {
-               date = new Date(cal.date);
-               if (mon.month != date.getMonth()) {
-                       date.setMonth(mon.month);
-                       cal.setDate(date);
-                       cal.dateClicked = false;
-                       cal.callHandler();
-               }
-       } else {
-               var year = Calendar.findYear(target);
-               if (year) {
-                       date = new Date(cal.date);
-                       if (year.year != date.getFullYear()) {
-                               date.setFullYear(year.year);
-                               cal.setDate(date);
-                               cal.dateClicked = false;
-                               cal.callHandler();
-                       }
-               }
-       }
-       with (Calendar) {
-               removeEvent(document, "mouseup", tableMouseUp);
-               removeEvent(document, "mouseover", tableMouseOver);
-               removeEvent(document, "mousemove", tableMouseOver);
-               cal._hideCombos();
-               _C = null;
-               return stopEvent(ev);
-       }
-};
-
-Calendar.tableMouseOver = function (ev) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return;
-       }
-       var el = cal.activeDiv;
-       var target = Calendar.getTargetElement(ev);
-       if (target == el || target.parentNode == el) {
-               Calendar.addClass(el, "hilite active");
-               Calendar.addClass(el.parentNode, "rowhilite");
-       } else {
-               if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2)))
-                       Calendar.removeClass(el, "active");
-               Calendar.removeClass(el, "hilite");
-               Calendar.removeClass(el.parentNode, "rowhilite");
-       }
-       ev || (ev = window.event);
-       if (el.navtype == 50 && target != el) {
-               var pos = Calendar.getAbsolutePos(el);
-               var w = el.offsetWidth;
-               var x = ev.clientX;
-               var dx;
-               var decrease = true;
-               if (x > pos.x + w) {
-                       dx = x - pos.x - w;
-                       decrease = false;
-               } else
-                       dx = pos.x - x;
-
-               if (dx < 0) dx = 0;
-               var range = el._range;
-               var current = el._current;
-               var count = Math.floor(dx / 10) % range.length;
-               for (var i = range.length; --i >= 0;)
-                       if (range[i] == current)
-                               break;
-               while (count-- > 0)
-                       if (decrease) {
-                               if (--i < 0)
-                                       i = range.length - 1;
-                       } else if ( ++i >= range.length )
-                               i = 0;
-               var newval = range[i];
-               el.firstChild.data = newval;
-
-               cal.onUpdateTime();
-       }
-       var mon = Calendar.findMonth(target);
-       if (mon) {
-               if (mon.month != cal.date.getMonth()) {
-                       if (cal.hilitedMonth) {
-                               Calendar.removeClass(cal.hilitedMonth, "hilite");
-                       }
-                       Calendar.addClass(mon, "hilite");
-                       cal.hilitedMonth = mon;
-               } else if (cal.hilitedMonth) {
-                       Calendar.removeClass(cal.hilitedMonth, "hilite");
-               }
-       } else {
-               if (cal.hilitedMonth) {
-                       Calendar.removeClass(cal.hilitedMonth, "hilite");
-               }
-               var year = Calendar.findYear(target);
-               if (year) {
-                       if (year.year != cal.date.getFullYear()) {
-                               if (cal.hilitedYear) {
-                                       Calendar.removeClass(cal.hilitedYear, "hilite");
-                               }
-                               Calendar.addClass(year, "hilite");
-                               cal.hilitedYear = year;
-                       } else if (cal.hilitedYear) {
-                               Calendar.removeClass(cal.hilitedYear, "hilite");
-                       }
-               } else if (cal.hilitedYear) {
-                       Calendar.removeClass(cal.hilitedYear, "hilite");
-               }
-       }
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.tableMouseDown = function (ev) {
-       if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
-               return Calendar.stopEvent(ev);
-       }
-};
-
-Calendar.calDragIt = function (ev) {
-       var cal = Calendar._C;
-       if (!(cal && cal.dragging)) {
-               return false;
-       }
-       var posX;
-       var posY;
-       if (Calendar.is_ie) {
-               posY = window.event.clientY + document.body.scrollTop;
-               posX = window.event.clientX + document.body.scrollLeft;
-       } else {
-               posX = ev.pageX;
-               posY = ev.pageY;
-       }
-       cal.hideShowCovered();
-       var st = cal.element.style;
-       st.left = (posX - cal.xOffs) + "px";
-       st.top = (posY - cal.yOffs) + "px";
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.calDragEnd = function (ev) {
-       var cal = Calendar._C;
-       if (!cal) {
-               return false;
-       }
-       cal.dragging = false;
-       with (Calendar) {
-               removeEvent(document, "mousemove", calDragIt);
-               removeEvent(document, "mouseup", calDragEnd);
-               tableMouseUp(ev);
-       }
-       cal.hideShowCovered();
-};
-
-Calendar.dayMouseDown = function(ev) {
-       var el = Calendar.getElement(ev);
-       if (el.disabled) {
-               return false;
-       }
-       var cal = el.calendar;
-       cal.activeDiv = el;
-       Calendar._C = cal;
-       if (el.navtype != 300) with (Calendar) {
-               if (el.navtype == 50) {
-                       el._current = el.firstChild.data;
-                       addEvent(document, "mousemove", tableMouseOver);
-               } else
-                       addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);
-               addClass(el, "hilite active");
-               addEvent(document, "mouseup", tableMouseUp);
-       } else if (cal.isPopup) {
-               cal._dragStart(ev);
-       }
-       if (el.navtype == -1 || el.navtype == 1) {
-               if (cal.timeout) clearTimeout(cal.timeout);
-               cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
-       } else if (el.navtype == -2 || el.navtype == 2) {
-               if (cal.timeout) clearTimeout(cal.timeout);
-               cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
-       } else {
-               cal.timeout = null;
-       }
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.dayMouseDblClick = function(ev) {
-       Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
-       if (Calendar.is_ie) {
-               document.selection.empty();
-       }
-};
-
-Calendar.dayMouseOver = function(ev) {
-       var el = Calendar.getElement(ev);
-       if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
-               return false;
-       }
-       if (el.ttip) {
-               if (el.ttip.substr(0, 1) == "_") {
-                       el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
-               }
-               el.calendar.tooltips.firstChild.data = el.ttip;
-       }
-       if (el.navtype != 300) {
-               Calendar.addClass(el, "hilite");
-               if (el.caldate) {
-                       Calendar.addClass(el.parentNode, "rowhilite");
-               }
-       }
-       return Calendar.stopEvent(ev);
-};
-
-Calendar.dayMouseOut = function(ev) {
-       with (Calendar) {
-               var el = getElement(ev);
-               if (isRelated(el, ev) || _C || el.disabled) {
-                       return false;
-               }
-               removeClass(el, "hilite");
-               if (el.caldate) {
-                       removeClass(el.parentNode, "rowhilite");
-               }
-               el.calendar.tooltips.firstChild.data = _TT["SEL_DATE"];
-               return stopEvent(ev);
-       }
-};
-
-/**
- *  A generic "click" handler :) handles all types of buttons defined in this
- *  calendar.
- */
-Calendar.cellClick = function(el, ev) {
-       var cal = el.calendar;
-       var closing = false;
-       var newdate = false;
-       var date = null;
-       if (typeof el.navtype == "undefined") {
-               Calendar.removeClass(cal.currentDateEl, "selected");
-               Calendar.addClass(el, "selected");
-               closing = (cal.currentDateEl == el);
-               if (!closing) {
-                       cal.currentDateEl = el;
-               }
-               cal.date = new Date(el.caldate);
-               date = cal.date;
-               newdate = true;
-               // a date was clicked
-               if (!(cal.dateClicked = !el.otherMonth))
-                       cal._init(cal.firstDayOfWeek, date);
-       } else {
-               if (el.navtype == 200) {
-                       Calendar.removeClass(el, "hilite");
-                       cal.callCloseHandler();
-                       return;
-               }
-               date = (el.navtype == 0) ? new Date() : new Date(cal.date);
-               // unless "today" was clicked, we assume no date was clicked so
-               // the selected handler will know not to close the calenar when
-               // in single-click mode.
-               // cal.dateClicked = (el.navtype == 0);
-               cal.dateClicked = false;
-               var year = date.getFullYear();
-               var mon = date.getMonth();
-               function setMonth(m) {
-                       var day = date.getDate();
-                       var max = date.getMonthDays(m);
-                       if (day > max) {
-                               date.setDate(max);
-                       }
-                       date.setMonth(m);
-               };
-               switch (el.navtype) {
-                   case 400:
-                       Calendar.removeClass(el, "hilite");
-                       var text = Calendar._TT["ABOUT"];
-                       if (typeof text != "undefined") {
-                               text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
-                       } else {
-                               // FIXME: this should be removed as soon as lang files get updated!
-                               text = "Help and about box text is not translated into this language.\n" +
-                                       "If you know this language and you feel generous please update\n" +
-                                       "the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
-                                       "and send it back to <mishoo@infoiasi.ro> to get it into the distribution  ;-)\n\n" +
-                                       "Thank you!\n" +
-                                       "http://dynarch.com/mishoo/calendar.epl\n";
-                       }
-                       alert(text);
-                       return;
-                   case -2:
-                       if (year > cal.minYear) {
-                               date.setFullYear(year - 1);
-                       }
-                       break;
-                   case -1:
-                       if (mon > 0) {
-                               setMonth(mon - 1);
-                       } else if (year-- > cal.minYear) {
-                               date.setFullYear(year);
-                               setMonth(11);
-                       }
-                       break;
-                   case 1:
-                       if (mon < 11) {
-                               setMonth(mon + 1);
-                       } else if (year < cal.maxYear) {
-                               date.setFullYear(year + 1);
-                               setMonth(0);
-                       }
-                       break;
-                   case 2:
-                       if (year < cal.maxYear) {
-                               date.setFullYear(year + 1);
-                       }
-                       break;
-                   case 100:
-                       cal.setFirstDayOfWeek(el.fdow);
-                       return;
-                   case 50:
-                       var range = el._range;
-                       var current = el.firstChild.data;
-                       for (var i = range.length; --i >= 0;)
-                               if (range[i] == current)
-                                       break;
-                       if (ev && ev.shiftKey) {
-                               if (--i < 0)
-                                       i = range.length - 1;
-                       } else if ( ++i >= range.length )
-                               i = 0;
-                       var newval = range[i];
-                       el.firstChild.data = newval;
-                       cal.onUpdateTime();
-                       return;
-                   case 0:
-                       // TODAY will bring us here
-                       if ((typeof cal.getDateStatus == "function") && cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {
-                               // remember, "date" was previously set to new
-                               // Date() if TODAY was clicked; thus, it
-                               // contains today date.
-                               return false;
-                       }
-                       break;
-               }
-               if (!date.equalsTo(cal.date)) {
-                       cal.setDate(date);
-                       newdate = true;
-               }
-       }
-       if (newdate) {
-               cal.callHandler();
-       }
-       if (closing) {
-               Calendar.removeClass(el, "hilite");
-               cal.callCloseHandler();
-       }
-};
-
-// END: CALENDAR STATIC FUNCTIONS
-
-// BEGIN: CALENDAR OBJECT FUNCTIONS
-
-/**
- *  This function creates the calendar inside the given parent.  If _par is
- *  null than it creates a popup calendar inside the BODY element.  If _par is
- *  an element, be it BODY, then it creates a non-popup calendar (still
- *  hidden).  Some properties need to be set before calling this function.
- */
-Calendar.prototype.create = function (_par) {
-       var parent = null;
-       if (! _par) {
-               // default parent is the document body, in which case we create
-               // a popup calendar.
-               parent = document.getElementsByTagName("body")[0];
-               this.isPopup = true;
-       } else {
-               parent = _par;
-               this.isPopup = false;
-       }
-       this.date = this.dateStr ? new Date(this.dateStr) : new Date();
-
-       var table = Calendar.createElement("table");
-       this.table = table;
-       table.cellSpacing = 0;
-       table.cellPadding = 0;
-       table.calendar = this;
-       Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);
-
-       var div = Calendar.createElement("div");
-       this.element = div;
-       div.className = "calendar";
-       if (this.isPopup) {
-               div.style.position = "absolute";
-               div.style.display = "none";
-       }
-       div.appendChild(table);
-
-       var thead = Calendar.createElement("thead", table);
-       var cell = null;
-       var row = null;
-
-       var cal = this;
-       var hh = function (text, cs, navtype) {
-               cell = Calendar.createElement("td", row);
-               cell.colSpan = cs;
-               cell.className = "button";
-               if (navtype != 0 && Math.abs(navtype) <= 2)
-                       cell.className += " nav";
-               Calendar._add_evs(cell);
-               cell.calendar = cal;
-               cell.navtype = navtype;
-               if (text.substr(0, 1) != "&") {
-                       cell.appendChild(document.createTextNode(text));
-               }
-               else {
-                       // FIXME: dirty hack for entities
-                       cell.innerHTML = text;
-               }
-               return cell;
-       };
-
-       row = Calendar.createElement("tr", thead);
-       var title_length = 6;
-       (this.isPopup) && --title_length;
-       (this.weekNumbers) && ++title_length;
-
-       hh("?", 1, 400).ttip = Calendar._TT["INFO"];
-       this.title = hh("", title_length, 300);
-       this.title.className = "title";
-       if (this.isPopup) {
-               this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
-               this.title.style.cursor = "move";
-               hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
-       }
-
-       row = Calendar.createElement("tr", thead);
-       row.className = "headrow";
-
-       this._nav_py = hh("&#x00ab;", 1, -2);
-       this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
-
-       this._nav_pm = hh("&#x2039;", 1, -1);
-       this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];
-
-       this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
-       this._nav_now.ttip = Calendar._TT["GO_TODAY"];
-
-       this._nav_nm = hh("&#x203a;", 1, 1);
-       this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
-
-       this._nav_ny = hh("&#x00bb;", 1, 2);
-       this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];
-
-       // day names
-       row = Calendar.createElement("tr", thead);
-       row.className = "daynames";
-       if (this.weekNumbers) {
-               cell = Calendar.createElement("td", row);
-               cell.className = "name wn";
-               cell.appendChild(document.createTextNode(Calendar._TT["WK"]));
-       }
-       for (var i = 7; i > 0; --i) {
-               cell = Calendar.createElement("td", row);
-               cell.appendChild(document.createTextNode(""));
-               if (!i) {
-                       cell.navtype = 100;
-                       cell.calendar = this;
-                       Calendar._add_evs(cell);
-               }
-       }
-       this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
-       this._displayWeekdays();
-
-       var tbody = Calendar.createElement("tbody", table);
-       this.tbody = tbody;
-
-       for (i = 6; i > 0; --i) {
-               row = Calendar.createElement("tr", tbody);
-               if (this.weekNumbers) {
-                       cell = Calendar.createElement("td", row);
-                       cell.appendChild(document.createTextNode(""));
-               }
-               for (var j = 7; j > 0; --j) {
-                       cell = Calendar.createElement("td", row);
-                       cell.appendChild(document.createTextNode(""));
-                       cell.calendar = this;
-                       Calendar._add_evs(cell);
-               }
-       }
-
-       if (this.showsTime) {
-               row = Calendar.createElement("tr", tbody);
-               row.className = "time";
-
-               cell = Calendar.createElement("td", row);
-               cell.className = "time";
-               cell.colSpan = 2;
-               cell.innerHTML = Calendar._TT["TIME"] || "&nbsp;";
-
-               cell = Calendar.createElement("td", row);
-               cell.className = "time";
-               cell.colSpan = this.weekNumbers ? 4 : 3;
-
-               (function(){
-                       function makeTimePart(className, init, range_start, range_end) {
-                               var part = Calendar.createElement("span", cell);
-                               part.className = className;
-                               part.appendChild(document.createTextNode(init));
-                               part.calendar = cal;
-                               part.ttip = Calendar._TT["TIME_PART"];
-                               part.navtype = 50;
-                               part._range = [];
-                               if (typeof range_start != "number")
-                                       part._range = range_start;
-                               else {
-                                       for (var i = range_start; i <= range_end; ++i) {
-                                               var txt;
-                                               if (i < 10 && range_end >= 10) txt = '0' + i;
-                                               else txt = '' + i;
-                                               part._range[part._range.length] = txt;
-                                       }
-                               }
-                               Calendar._add_evs(part);
-                               return part;
-                       };
-                       var hrs = cal.date.getHours();
-                       var mins = cal.date.getMinutes();
-                       var t12 = !cal.time24;
-                       var pm = (hrs > 12);
-                       if (t12 && pm) hrs -= 12;
-                       var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
-                       var span = Calendar.createElement("span", cell);
-                       span.appendChild(document.createTextNode(":"));
-                       span.className = "colon";
-                       var M = makeTimePart("minute", mins, 0, 59);
-                       var AP = null;
-                       cell = Calendar.createElement("td", row);
-                       cell.className = "time";
-                       cell.colSpan = 2;
-                       if (t12)
-                               AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
-                       else
-                               cell.innerHTML = "&nbsp;";
-
-                       cal.onSetTime = function() {
-                               var hrs = this.date.getHours();
-                               var mins = this.date.getMinutes();
-                               var pm = (hrs > 12);
-                               if (pm && t12) hrs -= 12;
-                               H.firstChild.data = (hrs < 10) ? ("0" + hrs) : hrs;
-                               M.firstChild.data = (mins < 10) ? ("0" + mins) : mins;
-                               if (t12)
-                                       AP.firstChild.data = pm ? "pm" : "am";
-                       };
-
-                       cal.onUpdateTime = function() {
-                               var date = this.date;
-                               var h = parseInt(H.firstChild.data, 10);
-                               if (t12) {
-                                       if (/pm/i.test(AP.firstChild.data) && h < 12)
-                                               h += 12;
-                                       else if (/am/i.test(AP.firstChild.data) && h == 12)
-                                               h = 0;
-                               }
-                               var d = date.getDate();
-                               var m = date.getMonth();
-                               var y = date.getFullYear();
-                               date.setHours(h);
-                               date.setMinutes(parseInt(M.firstChild.data, 10));
-                               date.setFullYear(y);
-                               date.setMonth(m);
-                               date.setDate(d);
-                               this.dateClicked = false;
-                               this.callHandler();
-                       };
-               })();
-       } else {
-               this.onSetTime = this.onUpdateTime = function() {};
-       }
-
-       var tfoot = Calendar.createElement("tfoot", table);
-
-       row = Calendar.createElement("tr", tfoot);
-       row.className = "footrow";
-
-       cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
-       cell.className = "ttip";
-       if (this.isPopup) {
-               cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
-               cell.style.cursor = "move";
-       }
-       this.tooltips = cell;
-
-       div = Calendar.createElement("div", this.element);
-       this.monthsCombo = div;
-       div.className = "combo";
-       for (i = 0; i < Calendar._MN.length; ++i) {
-               var mn = Calendar.createElement("div");
-               mn.className = Calendar.is_ie ? "label-IEfix" : "label";
-               mn.month = i;
-               mn.appendChild(document.createTextNode(Calendar._SMN[i]));
-               div.appendChild(mn);
-       }
-
-       div = Calendar.createElement("div", this.element);
-       this.yearsCombo = div;
-       div.className = "combo";
-       for (i = 12; i > 0; --i) {
-               var yr = Calendar.createElement("div");
-               yr.className = Calendar.is_ie ? "label-IEfix" : "label";
-               yr.appendChild(document.createTextNode(""));
-               div.appendChild(yr);
-       }
-
-       this._init(this.firstDayOfWeek, this.date);
-       parent.appendChild(this.element);
-};
-
-/** keyboard navigation, only for popup calendars */
-Calendar._keyEvent = function(ev) {
-       if (!window.calendar) {
-               return false;
-       }
-       (Calendar.is_ie) && (ev = window.event);
-       var cal = window.calendar;
-       var act = (Calendar.is_ie || ev.type == "keypress");
-       if (ev.ctrlKey) {
-               switch (ev.keyCode) {
-                   case 37: // KEY left
-                       act && Calendar.cellClick(cal._nav_pm);
-                       break;
-                   case 38: // KEY up
-                       act && Calendar.cellClick(cal._nav_py);
-                       break;
-                   case 39: // KEY right
-                       act && Calendar.cellClick(cal._nav_nm);
-                       break;
-                   case 40: // KEY down
-                       act && Calendar.cellClick(cal._nav_ny);
-                       break;
-                   default:
-                       return false;
-               }
-       } else switch (ev.keyCode) {
-           case 32: // KEY space (now)
-               Calendar.cellClick(cal._nav_now);
-               break;
-           case 27: // KEY esc
-               act && cal.callCloseHandler();
-               break;
-           case 37: // KEY left
-           case 38: // KEY up
-           case 39: // KEY right
-           case 40: // KEY down
-               if (act) {
-                       var date = cal.date.getDate() - 1;
-                       var el = cal.currentDateEl;
-                       var ne = null;
-                       var prev = (ev.keyCode == 37) || (ev.keyCode == 38);
-                       switch (ev.keyCode) {
-                           case 37: // KEY left
-                               (--date >= 0) && (ne = cal.ar_days[date]);
-                               break;
-                           case 38: // KEY up
-                               date -= 7;
-                               (date >= 0) && (ne = cal.ar_days[date]);
-                               break;
-                           case 39: // KEY right
-                               (++date < cal.ar_days.length) && (ne = cal.ar_days[date]);
-                               break;
-                           case 40: // KEY down
-                               date += 7;
-                               (date < cal.ar_days.length) && (ne = cal.ar_days[date]);
-                               break;
-                       }
-                       if (!ne) {
-                               if (prev) {
-                                       Calendar.cellClick(cal._nav_pm);
-                               } else {
-                                       Calendar.cellClick(cal._nav_nm);
-                               }
-                               date = (prev) ? cal.date.getMonthDays() : 1;
-                               el = cal.currentDateEl;
-                               ne = cal.ar_days[date - 1];
-                       }
-                       Calendar.removeClass(el, "selected");
-                       Calendar.addClass(ne, "selected");
-                       cal.date = new Date(ne.caldate);
-                       cal.callHandler();
-                       cal.currentDateEl = ne;
-               }
-               break;
-           case 13: // KEY enter
-               if (act) {
-                       cal.callHandler();
-                       cal.hide();
-               }
-               break;
-           default:
-               return false;
-       }
-       return Calendar.stopEvent(ev);
-};
-
-/**
- *  (RE)Initializes the calendar to the given date and firstDayOfWeek
- */
-Calendar.prototype._init = function (firstDayOfWeek, date) {
-       var today = new Date();
-       this.table.style.visibility = "hidden";
-       var year = date.getFullYear();
-       if (year < this.minYear) {
-               year = this.minYear;
-               date.setFullYear(year);
-       } else if (year > this.maxYear) {
-               year = this.maxYear;
-               date.setFullYear(year);
-       }
-       this.firstDayOfWeek = firstDayOfWeek;
-       this.date = new Date(date);
-       var month = date.getMonth();
-       var mday = date.getDate();
-       var no_days = date.getMonthDays();
-
-       // calendar voodoo for computing the first day that would actually be
-       // displayed in the calendar, even if it's from the previous month.
-       // WARNING: this is magic. ;-)
-       date.setDate(1);
-       var day1 = (date.getDay() - this.firstDayOfWeek) % 7;
-       if (day1 < 0)
-               day1 += 7;
-       date.setDate(-day1);
-       date.setDate(date.getDate() + 1);
-
-       var row = this.tbody.firstChild;
-       var MN = Calendar._SMN[month];
-       var ar_days = new Array();
-       var weekend = Calendar._TT["WEEKEND"];
-       for (var i = 0; i < 6; ++i, row = row.nextSibling) {
-               var cell = row.firstChild;
-               if (this.weekNumbers) {
-                       cell.className = "day wn";
-                       cell.firstChild.data = date.getWeekNumber();
-                       cell = cell.nextSibling;
-               }
-               row.className = "daysrow";
-               var hasdays = false;
-               for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(date.getDate() + 1)) {
-                       var iday = date.getDate();
-                       var wday = date.getDay();
-                       cell.className = "day";
-                       var current_month = (date.getMonth() == month);
-                       if (!current_month) {
-                               if (this.showsOtherMonths) {
-                                       cell.className += " othermonth";
-                                       cell.otherMonth = true;
-                               } else {
-                                       cell.className = "emptycell";
-                                       cell.innerHTML = "&nbsp;";
-                                       cell.disabled = true;
-                                       continue;
-                               }
-                       } else {
-                               cell.otherMonth = false;
-                               hasdays = true;
-                       }
-                       cell.disabled = false;
-                       cell.firstChild.data = iday;
-                       if (typeof this.getDateStatus == "function") {
-                               var status = this.getDateStatus(date, year, month, iday);
-                               if (status === true) {
-                                       cell.className += " disabled";
-                                       cell.disabled = true;
-                               } else {
-                                       if (/disabled/i.test(status))
-                                               cell.disabled = true;
-                                       cell.className += " " + status;
-                               }
-                       }
-                       if (!cell.disabled) {
-                               ar_days[ar_days.length] = cell;
-                               cell.caldate = new Date(date);
-                               cell.ttip = "_";
-                               if (current_month && iday == mday) {
-                                       cell.className += " selected";
-                                       this.currentDateEl = cell;
-                               }
-                               if (date.getFullYear() == today.getFullYear() &&
-                                   date.getMonth() == today.getMonth() &&
-                                   iday == today.getDate()) {
-                                       cell.className += " today";
-                                       cell.ttip += Calendar._TT["PART_TODAY"];
-                               }
-                               if (weekend.indexOf(wday.toString()) != -1) {
-                                       cell.className += cell.otherMonth ? " oweekend" : " weekend";
-                               }
-                       }
-               }
-               if (!(hasdays || this.showsOtherMonths))
-                       row.className = "emptyrow";
-       }
-       this.ar_days = ar_days;
-       this.title.firstChild.data = Calendar._MN[month] + ", " + year;
-       this.onSetTime();
-       this.table.style.visibility = "visible";
-       // PROFILE
-       // this.tooltips.firstChild.data = "Generated in " + ((new Date()) - today) + " ms";
-};
-
-/**
- *  Calls _init function above for going to a certain date (but only if the
- *  date is different than the currently selected one).
- */
-Calendar.prototype.setDate = function (date) {
-       if (!date.equalsTo(this.date)) {
-               this._init(this.firstDayOfWeek, date);
-       }
-};
-
-/**
- *  Refreshes the calendar.  Useful if the "disabledHandler" function is
- *  dynamic, meaning that the list of disabled date can change at runtime.
- *  Just * call this function if you think that the list of disabled dates
- *  should * change.
- */
-Calendar.prototype.refresh = function () {
-       this._init(this.firstDayOfWeek, this.date);
-};
-
-/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
-Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
-       this._init(firstDayOfWeek, this.date);
-       this._displayWeekdays();
-};
-
-/**
- *  Allows customization of what dates are enabled.  The "unaryFunction"
- *  parameter must be a function object that receives the date (as a JS Date
- *  object) and returns a boolean value.  If the returned value is true then
- *  the passed date will be marked as disabled.
- */
-Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
-       this.getDateStatus = unaryFunction;
-};
-
-/** Customization of allowed year range for the calendar. */
-Calendar.prototype.setRange = function (a, z) {
-       this.minYear = a;
-       this.maxYear = z;
-};
-
-/** Calls the first user handler (selectedHandler). */
-Calendar.prototype.callHandler = function () {
-       if (this.onSelected) {
-               this.onSelected(this, this.date.print(this.dateFormat));
-       }
-};
-
-/** Calls the second user handler (closeHandler). */
-Calendar.prototype.callCloseHandler = function () {
-       if (this.onClose) {
-               this.onClose(this);
-       }
-       this.hideShowCovered();
-};
-
-/** Removes the calendar object from the DOM tree and destroys it. */
-Calendar.prototype.destroy = function () {
-       var el = this.element.parentNode;
-       el.removeChild(this.element);
-       Calendar._C = null;
-       window.calendar = null;
-};
-
-/**
- *  Moves the calendar element to a different section in the DOM tree (changes
- *  its parent).
- */
-Calendar.prototype.reparent = function (new_parent) {
-       var el = this.element;
-       el.parentNode.removeChild(el);
-       new_parent.appendChild(el);
-};
-
-// This gets called when the user presses a mouse button anywhere in the
-// document, if the calendar is shown.  If the click was outside the open
-// calendar this function closes it.
-Calendar._checkCalendar = function(ev) {
-       if (!window.calendar) {
-               return false;
-       }
-       var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
-       for (; el != null && el != calendar.element; el = el.parentNode);
-       if (el == null) {
-               // calls closeHandler which should hide the calendar.
-               window.calendar.callCloseHandler();
-               return Calendar.stopEvent(ev);
-       }
-};
-
-/** Shows the calendar. */
-Calendar.prototype.show = function () {
-       var rows = this.table.getElementsByTagName("tr");
-       for (var i = rows.length; i > 0;) {
-               var row = rows[--i];
-               Calendar.removeClass(row, "rowhilite");
-               var cells = row.getElementsByTagName("td");
-               for (var j = cells.length; j > 0;) {
-                       var cell = cells[--j];
-                       Calendar.removeClass(cell, "hilite");
-                       Calendar.removeClass(cell, "active");
-               }
-       }
-       this.element.style.display = "block";
-       this.hidden = false;
-       if (this.isPopup) {
-               window.calendar = this;
-               Calendar.addEvent(document, "keydown", Calendar._keyEvent);
-               Calendar.addEvent(document, "keypress", Calendar._keyEvent);
-               Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
-       }
-       this.hideShowCovered();
-};
-
-/**
- *  Hides the calendar.  Also removes any "hilite" from the class of any TD
- *  element.
- */
-Calendar.prototype.hide = function () {
-       if (this.isPopup) {
-               Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
-               Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
-               Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
-       }
-       this.element.style.display = "none";
-       this.hidden = true;
-       this.hideShowCovered();
-};
-
-/**
- *  Shows the calendar at a given absolute position (beware that, depending on
- *  the calendar element style -- position property -- this might be relative
- *  to the parent's containing rectangle).
- */
-Calendar.prototype.showAt = function (x, y) {
-       var s = this.element.style;
-       s.left = x + "px";
-       s.top = y + "px";
-       this.show();
-};
-
-/** Shows the calendar near a given element. */
-Calendar.prototype.showAtElement = function (el, opts) {
-       var self = this;
-       var p = Calendar.getAbsolutePos(el);
-       if (!opts || typeof opts != "string") {
-               this.showAt(p.x, p.y + el.offsetHeight);
-               return true;
-       }
-       function fixPosition(box) {
-               if (box.x < 0)
-                       box.x = 0;
-               if (box.y < 0)
-                       box.y = 0;
-               var cp = document.createElement("div");
-               var s = cp.style;
-               s.position = "absolute";
-               s.right = s.bottom = s.width = s.height = "0px";
-               document.body.appendChild(cp);
-               var br = Calendar.getAbsolutePos(cp);
-               document.body.removeChild(cp);
-               if (Calendar.is_ie) {
-                       br.y += document.body.scrollTop;
-                       br.x += document.body.scrollLeft;
-               } else {
-                       br.y += window.scrollY;
-                       br.x += window.scrollX;
-               }
-               var tmp = box.x + box.width - br.x;
-               if (tmp > 0) box.x -= tmp;
-               tmp = box.y + box.height - br.y;
-               if (tmp > 0) box.y -= tmp;
-       };
-       this.element.style.display = "block";
-       Calendar.continuation_for_the_fucking_khtml_browser = function() {
-               var w = self.element.offsetWidth;
-               var h = self.element.offsetHeight;
-               self.element.style.display = "none";
-               var valign = opts.substr(0, 1);
-               var halign = "l";
-               if (opts.length > 1) {
-                       halign = opts.substr(1, 1);
-               }
-               // vertical alignment
-               switch (valign) {
-                   case "T": p.y -= h; break;
-                   case "B": p.y += el.offsetHeight; break;
-                   case "C": p.y += (el.offsetHeight - h) / 2; break;
-                   case "t": p.y += el.offsetHeight - h; break;
-                   case "b": break; // already there
-               }
-               // horizontal alignment
-               switch (halign) {
-                   case "L": p.x -= w; break;
-                   case "R": p.x += el.offsetWidth; break;
-                   case "C": p.x += (el.offsetWidth - w) / 2; break;
-                   case "r": p.x += el.offsetWidth - w; break;
-                   case "l": break; // already there
-               }
-               p.width = w;
-               p.height = h + 40;
-               self.monthsCombo.style.display = "none";
-               fixPosition(p);
-               self.showAt(p.x, p.y);
-       };
-       if (Calendar.is_khtml)
-               setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
-       else
-               Calendar.continuation_for_the_fucking_khtml_browser();
-};
-
-/** Customizes the date format. */
-Calendar.prototype.setDateFormat = function (str) {
-       this.dateFormat = str;
-};
-
-/** Customizes the tooltip date format. */
-Calendar.prototype.setTtDateFormat = function (str) {
-       this.ttDateFormat = str;
-};
-
-/**
- *  Tries to identify the date represented in a string.  If successful it also
- *  calls this.setDate which moves the calendar to the given date.
- */
-Calendar.prototype.parseDate = function (str, fmt) {
-       var y = 0;
-       var m = -1;
-       var d = 0;
-       var a = str.split(/\W+/);
-       if (!fmt) {
-               fmt = this.dateFormat;
-       }
-       var b = fmt.match(/%./g);
-       var i = 0, j = 0;
-       var hr = 0;
-       var min = 0;
-       for (i = 0; i < a.length; ++i) {
-               if (!a[i])
-                       continue;
-               switch (b[i]) {
-                   case "%d":
-                   case "%e":
-                       d = parseInt(a[i], 10);
-                       break;
-
-                   case "%m":
-                       m = parseInt(a[i], 10) - 1;
-                       break;
-
-                   case "%Y":
-                   case "%y":
-                       y = parseInt(a[i], 10);
-                       (y < 100) && (y += (y > 29) ? 1900 : 2000);
-                       break;
-
-                   case "%b":
-                   case "%B":
-                       for (j = 0; j < 12; ++j) {
-                               if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
-                       }
-                       break;
-
-                   case "%H":
-                   case "%I":
-                   case "%k":
-                   case "%l":
-                       hr = parseInt(a[i], 10);
-                       break;
-
-                   case "%P":
-                   case "%p":
-                       if (/pm/i.test(a[i]) && hr < 12)
-                               hr += 12;
-                       break;
-
-                   case "%M":
-                       min = parseInt(a[i], 10);
-                       break;
-               }
-       }
-       if (y != 0 && m != -1 && d != 0) {
-               this.setDate(new Date(y, m, d, hr, min, 0));
-               return;
-       }
-       y = 0; m = -1; d = 0;
-       for (i = 0; i < a.length; ++i) {
-               if (a[i].search(/[a-zA-Z]+/) != -1) {
-                       var t = -1;
-                       for (j = 0; j < 12; ++j) {
-                               if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
-                       }
-                       if (t != -1) {
-                               if (m != -1) {
-                                       d = m+1;
-                               }
-                               m = t;
-                       }
-               } else if (parseInt(a[i], 10) <= 12 && m == -1) {
-                       m = a[i]-1;
-               } else if (parseInt(a[i], 10) > 31 && y == 0) {
-                       y = parseInt(a[i], 10);
-                       (y < 100) && (y += (y > 29) ? 1900 : 2000);
-               } else if (d == 0) {
-                       d = a[i];
-               }
-       }
-       if (y == 0) {
-               var today = new Date();
-               y = today.getFullYear();
-       }
-       if (m != -1 && d != 0) {
-               this.setDate(new Date(y, m, d, hr, min, 0));
-       }
-};
-
-
-
-
-
-
-
-
-
-
-
-
-Calendar.prototype.hideShowCovered = function () {
-       var tags = new Array("applet", "iframe", "select");
-       var el = this.element;
-
-       var p = Calendar.getAbsolutePos(el);
-       var EX1 = p.x;
-       var EX2 = el.offsetWidth + EX1;
-       var EY1 = p.y;
-       var EY2 = el.offsetHeight + EY1;
-
-       for (var k = tags.length; k > 0; ) {
-               var ar = document.getElementsByTagName(tags[--k]);
-               var cc = null;
-
-               for (var i = ar.length; i > 0;) {
-                       cc = ar[--i];
-
-                       p = Calendar.getAbsolutePos(cc);
-                       var CX1 = p.x;
-                       var CX2 = cc.offsetWidth + CX1;
-                       var CY1 = p.y;
-                       var CY2 = cc.offsetHeight + CY1;
-
-                       if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
-                               cc.style.visibility = "visible";
-                       } else {
-                               cc.style.visibility = "hidden";
-                       }
-               }
-       }
-};
-
-
-
-/*
-       replaced with function from jscalendar 0.9.2 because hidden elements doens't show up again in konqui
-
-Calendar.prototype.hideShowCovered = function () {
-       var self = this;
-       Calendar.continuation_for_the_fucking_khtml_browser = function() {
-               function getVisib(obj){
-                       var value = obj.style.visibility;
-                       if (!value) {
-                               if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
-                                       if (!Calendar.is_khtml)
-                                               value = document.defaultView.
-                                                       getComputedStyle(obj, "").getPropertyValue("visibility");
-                                       else
-                                               value = '';
-                               } else if (obj.currentStyle) { // IE
-                                       value = obj.currentStyle.visibility;
-                               } else
-                                       value = '';
-                       }
-                       return value;
-               };
-
-               var tags = new Array("applet", "iframe", "select");
-               var el = self.element;
-
-               var p = Calendar.getAbsolutePos(el);
-               var EX1 = p.x;
-               var EX2 = el.offsetWidth + EX1;
-               var EY1 = p.y;
-               var EY2 = el.offsetHeight + EY1;
-
-               for (var k = tags.length; k > 0; ) {
-                       var ar = document.getElementsByTagName(tags[--k]);
-                       var cc = null;
-
-                       for (var i = ar.length; i > 0;) {
-                               cc = ar[--i];
-
-                               p = Calendar.getAbsolutePos(cc);
-                               var CX1 = p.x;
-                               var CX2 = cc.offsetWidth + CX1;
-                               var CY1 = p.y;
-                               var CY2 = cc.offsetHeight + CY1;
-
-                               if (self.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
-                                       if (!cc.__msh_save_visibility) {
-                                               cc.__msh_save_visibility = getVisib(cc);
-                                       }
-                                       cc.style.visibility = cc.__msh_save_visibility;
-                               } else {
-                                       if (!cc.__msh_save_visibility) {
-                                               cc.__msh_save_visibility = getVisib(cc);
-                                       }
-                                       cc.style.visibility = "hidden";
-                               }
-                       }
-               }
-       };
-       if (Calendar.is_khtml)
-               setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
-       else
-               Calendar.continuation_for_the_fucking_khtml_browser();
-};*/
-
-/** Internal function; it displays the bar with the names of the weekday. */
-Calendar.prototype._displayWeekdays = function () {
-       var fdow = this.firstDayOfWeek;
-       var cell = this.firstdayname;
-       var weekend = Calendar._TT["WEEKEND"];
-       for (var i = 0; i < 7; ++i) {
-               cell.className = "day name";
-               var realday = (i + fdow) % 7;
-               if (i) {
-                       cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]);
-                       cell.navtype = 100;
-                       cell.calendar = this;
-                       cell.fdow = realday;
-                       Calendar._add_evs(cell);
-               }
-               if (weekend.indexOf(realday.toString()) != -1) {
-                       Calendar.addClass(cell, "weekend");
-               }
-               cell.firstChild.data = Calendar._SDN[(i + fdow) % 7];
-               cell = cell.nextSibling;
-       }
-};
-
-/** Internal function.  Hides all combo boxes that might be displayed. */
-Calendar.prototype._hideCombos = function () {
-       this.monthsCombo.style.display = "none";
-       this.yearsCombo.style.display = "none";
-};
-
-/** Internal function.  Starts dragging the element. */
-Calendar.prototype._dragStart = function (ev) {
-       if (this.dragging) {
-               return;
-       }
-       this.dragging = true;
-       var posX;
-       var posY;
-       if (Calendar.is_ie) {
-               posY = window.event.clientY + document.body.scrollTop;
-               posX = window.event.clientX + document.body.scrollLeft;
-       } else {
-               posY = ev.clientY + window.scrollY;
-               posX = ev.clientX + window.scrollX;
-       }
-       var st = this.element.style;
-       this.xOffs = posX - parseInt(st.left);
-       this.yOffs = posY - parseInt(st.top);
-       with (Calendar) {
-               addEvent(document, "mousemove", calDragIt);
-               addEvent(document, "mouseup", calDragEnd);
-       }
-};
-
-// BEGIN: DATE OBJECT PATCHES
-
-/** Adds the number of days array to the Date object. */
-Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
-
-/** Constants used for time computations */
-Date.SECOND = 1000 /* milliseconds */;
-Date.MINUTE = 60 * Date.SECOND;
-Date.HOUR   = 60 * Date.MINUTE;
-Date.DAY    = 24 * Date.HOUR;
-Date.WEEK   =  7 * Date.DAY;
-
-/** Returns the number of days in the current month */
-Date.prototype.getMonthDays = function(month) {
-       var year = this.getFullYear();
-       if (typeof month == "undefined") {
-               month = this.getMonth();
-       }
-       if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
-               return 29;
-       } else {
-               return Date._MD[month];
-       }
-};
-
-/** Returns the number of day in the year. */
-Date.prototype.getDayOfYear = function() {
-       var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
-       var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
-       var time = now - then;
-       return Math.floor(time / Date.DAY);
-};
-
-/** Returns the number of the week in year, as defined in ISO 8601. */
-Date.prototype.getWeekNumber = function() {
-       var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
-       var DoW = d.getDay();
-       d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
-       var ms = d.valueOf(); // GMT
-       d.setMonth(0);
-       d.setDate(4); // Thu in Week 1
-       return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
-};
-
-/** Checks dates equality (ignores time) */
-Date.prototype.equalsTo = function(date) {
-       return ((this.getFullYear() == date.getFullYear()) &&
-               (this.getMonth() == date.getMonth()) &&
-               (this.getDate() == date.getDate()) &&
-               (this.getHours() == date.getHours()) &&
-               (this.getMinutes() == date.getMinutes()));
-};
-
-/** Prints the date in a string according to the given format. */
-Date.prototype.print = function (str) {
-       var m = this.getMonth();
-       var d = this.getDate();
-       var y = this.getFullYear();
-       var wn = this.getWeekNumber();
-       var w = this.getDay();
-       var s = {};
-       var hr = this.getHours();
-       var pm = (hr >= 12);
-       var ir = (pm) ? (hr - 12) : hr;
-       var dy = this.getDayOfYear();
-       if (ir == 0)
-               ir = 12;
-       var min = this.getMinutes();
-       var sec = this.getSeconds();
-       s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
-       s["%A"] = Calendar._DN[w]; // full weekday name
-       s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
-       s["%B"] = Calendar._MN[m]; // full month name
-       // FIXME: %c : preferred date and time representation for the current locale
-       s["%C"] = 1 + Math.floor(y / 100); // the century number
-       s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
-       s["%e"] = d; // the day of the month (range 1 to 31)
-       // FIXME: %D : american date style: %m/%d/%y
-       // FIXME: %E, %F, %G, %g, %h (man strftime)
-       s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)
-       s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)
-       s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)
-       s["%k"] = hr;           // hour, range 0 to 23 (24h format)
-       s["%l"] = ir;           // hour, range 1 to 12 (12h format)
-       s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
-       s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
-       s["%n"] = "\n";         // a newline character
-       s["%p"] = pm ? "PM" : "AM";
-       s["%P"] = pm ? "pm" : "am";
-       // FIXME: %r : the time in am/pm notation %I:%M:%S %p
-       // FIXME: %R : the time in 24-hour notation %H:%M
-       s["%s"] = Math.floor(this.getTime() / 1000);
-       s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
-       s["%t"] = "\t";         // a tab character
-       // FIXME: %T : the time in 24-hour notation (%H:%M:%S)
-       s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
-       s["%u"] = w + 1;        // the day of the week (range 1 to 7, 1 = MON)
-       s["%w"] = w;            // the day of the week (range 0 to 6, 0 = SUN)
-       // FIXME: %x : preferred date representation for the current locale without the time
-       // FIXME: %X : preferred time representation for the current locale without the date
-       s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)
-       s["%Y"] = y;            // year with the century
-       s["%%"] = "%";          // a literal '%' character
-
-       var re = /%./g;
-       
-       if (!Calendar.is_ie5)
-               return str.replace(re, function (par) { return s[par] || par; });
-
-               
-       var a = str.match(re);
-       for (var i = 0; i < a.length; i++) {
-               var tmp = s[a[i]];
-               if (tmp) {
-                       re = new RegExp(a[i], 'g');
-                       str = str.replace(re, tmp);
-               }
-       }
-
-       return str;
-};
-
-Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
-Date.prototype.setFullYear = function(y) {
-       var d = new Date(this);
-       d.__msh_oldSetFullYear(y);
-       if (d.getMonth() != this.getMonth())
-               this.setDate(28);
-       this.__msh_oldSetFullYear(y);
-};
-
-// END: DATE OBJECT PATCHES
-
-
-// global object that remembers the calendar
-window.calendar = null;
diff --git a/js/jscalendar/lang/calendar-af.js b/js/jscalendar/lang/calendar-af.js
deleted file mode 100644 (file)
index aeda581..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ** I18N Afrikaans
-Calendar._DN = new Array
-("Sondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrydag",
- "Saterdag",
- "Sondag");
-Calendar._MN = new Array
-("Januarie",
- "Februarie",
- "Maart",
- "April",
- "Mei",
- "Junie",
- "Julie",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "Desember");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
-Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
-Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
-Calendar._TT["GO_TODAY"] = "Gaan na vandag";
-Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
-Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
-Calendar._TT["SEL_DATE"] = "Kies datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
-Calendar._TT["PART_TODAY"] = " (vandag)";
-Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
-Calendar._TT["SUN_FIRST"] = "Display Sunday first";
-Calendar._TT["CLOSE"] = "Close";
-Calendar._TT["TODAY"] = "Today";
diff --git a/js/jscalendar/lang/calendar-br.js b/js/jscalendar/lang/calendar-br.js
deleted file mode 100644 (file)
index d7db4b4..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terça",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sábado",
- "Domingo");
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Março",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Altera primeiro dia da semana";
-Calendar._TT["PREV_YEAR"] = "Ano anterior(hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Mês anterior (hold for menu)";
-Calendar._TT["GO_TODAY"] = "Hoje";
-Calendar._TT["NEXT_MONTH"] = "Mês seguinte (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "ano seguinte (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Seleciona uma data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrasta calendário";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-Calendar._TT["MON_FIRST"] = "Inicia na segunda-feira";
-Calendar._TT["SUN_FIRST"] = "Inicia no domingo";
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, dd de MM de y";
-
-Calendar._TT["WK"] = "sem";
diff --git a/js/jscalendar/lang/calendar-ca.js b/js/jscalendar/lang/calendar-ca.js
deleted file mode 100644 (file)
index 3498d76..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Diumenge",
- "Dilluns",
- "Dimarts",
- "Dimecres",
- "Dijous",
- "Divendres",
- "Dissabte",
- "Diumenge");
-Calendar._MN = new Array
-("Gener",
- "Febrer",
- "Març",
- "Abril",
- "Maig",
- "Juny",
- "Juliol",
- "Agost",
- "Setembre",
- "Octubre",
- "Novembre",
- "Desembre");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Canvia el primer dia de la setmana";
-Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per a menu)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (mantenir per a menu)";
-Calendar._TT["GO_TODAY"] = "Anar a avui";
-Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per a menu)";
-Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per a menu)";
-Calendar._TT["SEL_DATE"] = "Seleccionar data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per a moure";
-Calendar._TT["PART_TODAY"] = " (avui)";
-Calendar._TT["MON_FIRST"] = "Mostrar dilluns primer";
-Calendar._TT["SUN_FIRST"] = "Mostrar diumenge primer";
-Calendar._TT["CLOSE"] = "Tancar";
-Calendar._TT["TODAY"] = "Avui";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "sem";
diff --git a/js/jscalendar/lang/calendar-cs-win.js b/js/jscalendar/lang/calendar-cs-win.js
deleted file mode 100644 (file)
index b34213f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* 
-       calendar-cs-win.js
-       language: Czech
-       encoding: windows-1250
-       author: Lubos Jerabek (xnet@seznam.cz)
-*/
-
-// ** I18N
-Calendar._DN = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
-Calendar._DN3 = new Array('Ne','Po','Út','St','Èt','Pá','So','Ne');
-Calendar._MN = new Array('Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
-Calendar._MN3 = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Zmìna prvního dne v týdnu";
-Calendar._TT["PREV_YEAR"] = "Pøedchozí rok (pøidr\9e pro menu)";
-Calendar._TT["PREV_MONTH"] = "Pøedchozí mìsíc (pøidr\9e pro menu)";
-Calendar._TT["GO_TODAY"] = "Dne\9aní datum";
-Calendar._TT["NEXT_MONTH"] = "Dal\9aí mìsíc (pøidr\9e pro menu)";
-Calendar._TT["NEXT_YEAR"] = "Dal\9aí rok (pøidr\9e pro menu)";
-Calendar._TT["SEL_DATE"] = "Vyber datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Chy\9d a táhni, pro pøesun";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "Uka\9e jako první Pondìlí";
-Calendar._TT["SUN_FIRST"] = "Uka\9e jako první Nedìli";
-Calendar._TT["CLOSE"] = "Zavøít";
-Calendar._TT["TODAY"] = "Dnes";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, 5.MM y";
-
-Calendar._TT["WK"] = "wk";
diff --git a/js/jscalendar/lang/calendar-da.js b/js/jscalendar/lang/calendar-da.js
deleted file mode 100644 (file)
index 579cee0..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Søndag",
- "Mandag",
- "Tirsdag",
- "Onsdag",
- "Torsdag",
- "Fredag",
- "Lørdag",
- "Søndag");
-Calendar._MN = new Array
-("January",
- "Februar",
- "Marts",
- "April",
- "Maj",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om Kalenderen";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"For den seneste version besøg: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribueret under GNU LGPL.  Se http://gnu.org/licenses/lgpl.html for detajler." +
-"\n\n" +
-"Valg af dato:\n" +
-"- Brug \xab, \xbb knapperne for at vælge år\n" +
-"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" +
-"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Valg af tid:\n" +
-"- Klik på en vilkårlig del for større værdi\n" +
-"- eller Shift-klik for for mindre værdi\n" +
-"- eller klik og træk for hurtigere valg.";
-
-Calendar._TT["TOGGLE"] = "Skift første ugedag";
-Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)";
-Calendar._TT["GO_TODAY"] = "Gå til i dag";
-Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Vælg dag";
-Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet";
-Calendar._TT["PART_TODAY"] = " (i dag)";
-Calendar._TT["MON_FIRST"] = "Vis mandag først";
-Calendar._TT["SUN_FIRST"] = "Vis søndag først";
-Calendar._TT["CLOSE"] = "Luk vinduet";
-Calendar._TT["TODAY"] = "I dag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%d. %b, %Y";
-
-Calendar._TT["WK"] = "wk";
diff --git a/js/jscalendar/lang/calendar-de.js b/js/jscalendar/lang/calendar-de.js
deleted file mode 100644 (file)
index 87915dd..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-// Author: Hartwig Weinkauf h_weinkauf@gmx.de
-// �erarbeitet und fehlende Texte hinzugefgt von Gerhard Neinert (gerhard at neinert punkt de)
-// Feel free to use / redistribute under the GNU LGPL.
-// ** I18N
-
-// short day names
-Calendar._SDN = new Array
-("So",
- "Mo",
- "Di",
- "Mi",
- "Do",
- "Fr",
- "Sa",
- "So");
-
-// full day names
-Calendar._DN = new Array
-("Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Samstag",
- "Sonntag");
-
-// short day names only use 2 letters instead of 3
-Calendar._SDN_len = 2;
-
-// full month names
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "M\u00e4rz",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "M\u00e4r",
- "Apr",
- "Mai",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Über den Kalender";
-
-Calendar._TT["ABOUT"] =
-"DHTML Datum/Zeit Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Donwload neueste Version: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Datumsauswahl:\n" +
-"- Jahr ausw\u00e4hlen mit \xab und \xbb\n" +
-"- Monat ausw\u00e4hlen mit " + String.fromCharCode(0x2039) + " und " + String.fromCharCode(0x203a) + "\n" +
-"- Fr Auswahl aus Liste Maustaste gedr\u00fcckt halten.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Zeit w\u00e4hlen:\n" +
-"- Stunde/Minute weiter mit Mausklick\n" +
-"- Stunde/Minute zurck mit Shift-Mausklick\n" +
-"- oder f\u00fcr schnellere Auswahl nach links oder rechts ziehen.";
-
-
-// Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen";
-Calendar._TT["PREV_YEAR"] = "Jahr zur\u00fcck (halten -> Auswahlmen\u00fc)";
-Calendar._TT["PREV_MONTH"] = "Monat zur\u00fcck (halten -> Auswahlmen\u00fc)";
-Calendar._TT["GO_TODAY"] = "Gehe zum heutigen Datum";
-Calendar._TT["NEXT_MONTH"] = "Monat vor (halten -> Auswahlmen\u00fc)";
-Calendar._TT["NEXT_YEAR"] = "Jahr vor (halten -> Auswahlmen\u00fc)";
-Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen";
-Calendar._TT["DRAG_TO_MOVE"] = "Klicken und halten um zu verschieben";
-Calendar._TT["PART_TODAY"] = " (heute)";
-Calendar._TT["MON_FIRST"] = "Wochenanzeige mit Montag beginnen";
-Calendar._TT["SUN_FIRST"] = "Wochenanzeige mit Sonntag beginnen";
-Calendar._TT["CLOSE"] = "Schlie\u00dfen";
-Calendar._TT["TODAY"] = "Heute";
-
-Calendar._TT["DAY_FIRST"] = "%s ist Wochenanfang";
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
-
-
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "Datum ausw\u00e4hlen";
-
-Calendar._TT["WK"] = "KW";
-Calendar._TT["TIME"] = "Zeit:";
diff --git a/js/jscalendar/lang/calendar-du.js b/js/jscalendar/lang/calendar-du.js
deleted file mode 100644 (file)
index 2200448..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Zondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrijdag",
- "Zaterdag",
- "Zondag");
-Calendar._MN = new Array
-("Januari",
- "Februari",
- "Maart",
- "April",
- "Mei",
- "Juni",
- "Juli",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Toggle startdag van de week";
-Calendar._TT["PREV_YEAR"] = "Vorig jaar (indrukken voor menu)";
-Calendar._TT["PREV_MONTH"] = "Vorige month (indrukken voor menu)";
-Calendar._TT["GO_TODAY"] = "Naar Vandaag";
-Calendar._TT["NEXT_MONTH"] = "Volgende Maand (indrukken voor menu)";
-Calendar._TT["NEXT_YEAR"] = "Volgend jaar (indrukken voor menu)";
-Calendar._TT["SEL_DATE"] = "Selecteer datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te verplaatsen";
-Calendar._TT["PART_TODAY"] = " (vandaag)";
-Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
-Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
-Calendar._TT["CLOSE"] = "Sluiten";
-Calendar._TT["TODAY"] = "Vandaag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "wk";
diff --git a/js/jscalendar/lang/calendar-el.js b/js/jscalendar/lang/calendar-el.js
deleted file mode 100644 (file)
index 1afcbb2..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Κυριακή",
- "Δευτέρα",
- "Τρίτη",
- "Τετάρτη",
- "Πέμπτη",
- "Παρασκευή",
- "Σάββατο",
- "Κυριακή");
-
-Calendar._SDN = new Array
-("Κυ",
- "Δε",
- "Tρ",
- "Τε",
- "Πε",
- "Πα",
- "Σα",
- "Κυ");
-
-Calendar._MN = new Array
-("Ιανουάριος",
- "Φεβρουάριος",
- "Μάρτιος",
- "Απρίλιος",
- "Μάϊος",
- "Ιούνιος",
- "Ιούλιος",
- "Αύγουστος",
- "Σεπτέμβριος",
- "Οκτώβριος",
- "Νοέμβριος",
- "Δεκέμβριος");
-
-Calendar._SMN = new Array
-("Ιαν",
- "Φεβ",
- "Μαρ",
- "Απρ",
- "Μαι",
- "Ιουν",
- "Ιουλ",
- "Αυγ",
- "Σεπ",
- "Οκτ",
- "Νοε",
- "Δεκ");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Για το ημερολόγιο";
-
-Calendar._TT["ABOUT"] =
-"Επιλογέας ημερομηνίας/ώρας σε DHTML\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Για τελευταία έκδοση: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Επιλογή ημερομηνίας:\n" +
-"- Χρησιμοποιείστε τα κουμπιά \xab, \xbb για επιλογή έτους\n" +
-"- Χρησιμοποιείστε τα κουμπιά " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " για επιλογή μήνα\n" +
-"- Κρατήστε κουμπί ποντικού πατημένο στα παραπάνω κουμπιά για πιο γρήγορη επιλογή.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Επιλογή ώρας:\n" +
-"- Κάντε κλικ σε ένα από τα μέρη της ώρας για αύξηση\n" +
-"- ή Shift-κλικ για μείωση\n" +
-"- ή κλικ και μετακίνηση για πιο γρήγορη επιλογή.";
-Calendar._TT["TOGGLE"] = "Μπάρα πρώτης ημέρας της εβδομάδας";
-Calendar._TT["PREV_YEAR"] = "Προηγ. έτος (κρατήστε για το μενού)";
-Calendar._TT["PREV_MONTH"] = "Προηγ. μήνας (κρατήστε για το μενού)";
-Calendar._TT["GO_TODAY"] = "Σήμερα";
-Calendar._TT["NEXT_MONTH"] = "Επόμενος μήνας (κρατήστε για το μενού)";
-Calendar._TT["NEXT_YEAR"] = "Επόμενο έτος (κρατήστε για το μενού)";
-Calendar._TT["SEL_DATE"] = "Επιλέξτε ημερομηνία";
-Calendar._TT["DRAG_TO_MOVE"] = "Σύρτε για να μετακινήσετε";
-Calendar._TT["PART_TODAY"] = " (σήμερα)";
-Calendar._TT["MON_FIRST"] = "Εμφάνιση Δευτέρας πρώτα";
-Calendar._TT["SUN_FIRST"] = "Εμφάνιση Κυριακής πρώτα";
-Calendar._TT["CLOSE"] = "Κλείσιμο";
-Calendar._TT["TODAY"] = "Σήμερα";
-Calendar._TT["TIME_PART"] = "(Shift-)κλικ ή μετακίνηση για αλλαγή";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "D, d M";
-
-Calendar._TT["WK"] = "εβδ";
-
diff --git a/js/jscalendar/lang/calendar-en.js b/js/jscalendar/lang/calendar-en.js
deleted file mode 100644 (file)
index e9d6a22..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mishoo@infoiasi.ro>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday",
- "Sunday");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sun",
- "Mon",
- "Tue",
- "Wed",
- "Thu",
- "Fri",
- "Sat",
- "Sun");
-
-// full month names
-Calendar._MN = new Array
-("January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Oct",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "About the calendar";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"For latest version visit: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Date selection:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
-"- Hold mouse button on any of the above buttons for faster selection.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Time selection:\n" +
-"- Click on any of the time parts to increase it\n" +
-"- or Shift-click to decrease it\n" +
-"- or click and drag for faster selection.";
-
-Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
-Calendar._TT["GO_TODAY"] = "Go Today";
-Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Select date";
-Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
-Calendar._TT["PART_TODAY"] = " (today)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Display %s first";
-
-// This may be locale-dependent.  It specifies the week-end days, as an array
-// of comma-separated numbers.  The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Close";
-Calendar._TT["TODAY"] = "Today";
-Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Time:";
diff --git a/js/jscalendar/lang/calendar-es.js b/js/jscalendar/lang/calendar-es.js
deleted file mode 100644 (file)
index a8d52ea..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mishoo@infoiasi.ro>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domingo",
- "Lunes",
- "Martes",
- "Miircoles",
- "Jueves",
- "Viernes",
- "Sabado",
- "Domingo");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Dom",
- "Lun",
- "Mar",
- "Mii",
- "Jue",
- "Vie",
- "Sab",
- "Dom");
-
-// full month names
-Calendar._MN = new Array
-("Enero",
- "Febrero",
- "Marzo",
- "Abril",
- "Mayo",
- "Junio",
- "Julio",
- "Agosto",
- "Septiembre",
- "Octubre",
- "Noviembre",
- "Diciembre");
-
-// short month names
-Calendar._SMN = new Array
-("Ene",
- "Feb",
- "Mar",
- "Abr",
- "May",
- "Jun",
- "Jul",
- "Ago",
- "Sep",
- "Oct",
- "Nov",
- "Dic");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Acerca del calendario";
-
-Calendar._TT["ABOUT"] =
-"Selector DHTML de Fecha/Hora\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Para conseguir la zltima versisn visite: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para mas detalles." +
-"\n\n" +
-"Seleccisn de fecha:\n" +
-"- Use los botones \xab, \xbb para seleccionar el aqo\n" +
-"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
-"- Mantenga pulsado el ratsn en cualquiera de estos botones para una seleccisn rapida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Seleccisn de hora:\n" +
-"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
-"- s pulse las mayzsculas mientras hace clic para decrementarla\n" +
-"- s haga clic y arrastre el ratsn para una seleccisn mas rapida.";
-
-Calendar._TT["PREV_YEAR"] = "Aqo anterior (mantener para menu)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menu)";
-Calendar._TT["GO_TODAY"] = "Ir a hoy";
-Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menu)";
-Calendar._TT["NEXT_YEAR"] = "Aqo siguiente (mantener para menu)";
-Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
-Calendar._TT["PART_TODAY"] = " (hoy)";
-Calendar._TT["MON_FIRST"] = "Mostrar lunes primero";
-Calendar._TT["SUN_FIRST"] = "Mostrar domingo primero";
-Calendar._TT["CLOSE"] = "Cerrar";
-Calendar._TT["TODAY"] = "Hoy";
-Calendar._TT["TIME_PART"] = "(Mayzscula-)Clic o arrastre para cambiar valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
-
-Calendar._TT["WK"] = "sem";
diff --git a/js/jscalendar/lang/calendar-fi.js b/js/jscalendar/lang/calendar-fi.js
deleted file mode 100644 (file)
index 844ed6c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-// ** I18N
-
-// Calendar FI language (Finnish, Suomi)
-// Author: Jarno Käyhkö, <gambler@phnet.fi>
-// Encoding: UTF-8
-// Distributed under the same terms as the calendar itself.
-
-// full day names
-Calendar._DN = new Array
-("Sunnuntai",
- "Maanantai",
- "Tiistai",
- "Keskiviikko",
- "Torstai",
- "Perjantai",
- "Lauantai",
- "Sunnuntai");
-
-// short day names
-Calendar._SDN = new Array
-("Su",
- "Ma",
- "Ti",
- "Ke",
- "To",
- "Pe",
- "La",
- "Su");
-
-// full month names
-Calendar._MN = new Array
-("Tammikuu",
- "Helmikuu",
- "Maaliskuu",
- "Huhtikuu",
- "Toukokuu",
- "Kesäkuu",
- "Heinäkuu",
- "Elokuu",
- "Syyskuu",
- "Lokakuu",
- "Marraskuu",
- "Joulukuu");
-
-// short month names
-Calendar._SMN = new Array
-("Tam",
- "Hel",
- "Maa",
- "Huh",
- "Tou",
- "Kes",
- "Hei",
- "Elo",
- "Syy",
- "Lok",
- "Mar",
- "Jou");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Tietoja kalenterista";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Uusin versio osoitteessa: http://dynarch.com/mishoo/calendar.epl\n" +
-"Julkaistu GNU LGPL lisenssin alaisuudessa. Lisätietoja osoitteessa http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"Päivämäärä valinta:\n" +
-"- Käytä \xab, \xbb painikkeita valitaksesi vuosi\n" +
-"- Käytä " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " painikkeita valitaksesi kuukausi\n" +
-"- Pitämällä hiiren painiketta minkä tahansa yllä olevan painikkeen kohdalla, saat näkyviin valikon nopeampaan siirtymiseen.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Ajan valinta:\n" +
-"- Klikkaa kellonajan numeroita lisätäksesi aikaa\n" +
-"- tai pitämällä Shift-näppäintä pohjassa saat aikaa taaksepäin\n" +
-"- tai klikkaa ja pidä hiiren painike pohjassa sekä liikuta hiirtä muuttaaksesi aikaa nopeasti eteen- ja taaksepäin.";
-
-Calendar._TT["PREV_YEAR"] = "Edell. vuosi (paina hetki, näet valikon)";
-Calendar._TT["PREV_MONTH"] = "Edell. kuukausi (paina hetki, näet valikon)";
-Calendar._TT["GO_TODAY"] = "Siirry tähän päivään";
-Calendar._TT["NEXT_MONTH"] = "Seur. kuukausi (paina hetki, näet valikon)";
-Calendar._TT["NEXT_YEAR"] = "Seur. vuosi (paina hetki, näet valikon)";
-Calendar._TT["SEL_DATE"] = "Valitse päivämäärä";
-Calendar._TT["DRAG_TO_MOVE"] = "Siirrä kalenterin paikkaa";
-Calendar._TT["PART_TODAY"] = " (tänään)";
-Calendar._TT["MON_FIRST"] = "Näytä maanantai ensimmäisenä";
-Calendar._TT["SUN_FIRST"] = "Näytä sunnuntai ensimmäisenä";
-Calendar._TT["CLOSE"] = "Sulje";
-Calendar._TT["TODAY"] = "Tänään";
-Calendar._TT["TIME_PART"] = "(Shift-) Klikkaa tai liikuta muuttaaksesi aikaa";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y";
-
-Calendar._TT["WK"] = "Vko";
diff --git a/js/jscalendar/lang/calendar-fr.js b/js/jscalendar/lang/calendar-fr.js
deleted file mode 100644 (file)
index 5e9c6c0..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Dimanche",
- "Lundi",
- "Mardi",
- "Mercredi",
- "Jeudi",
- "Vendredi",
- "Samedi",
- "Dimanche");
-Calendar._MN = new Array
-("Janvier",
- "Février",
- "Mars",
- "Avril",
- "Mai",
- "Juin",
- "Juillet",
- "Août",
- "Septembre",
- "Octobre",
- "Novembre",
- "Décembre");
-Calendar._SDN = new Array
-("Lun",
- "Mar",
- "Mer",
- "Jeu",
- "Thu",
- "Ven",
- "Sam",
- "Dim");
-Calendar._SMN = new Array
-("Jan",
- "Fev",
- "Mar",
- "Avr",
- "Mai",
- "Juin",
- "Juil",
- "Aout",
- "Sep",
- "Oct",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-
-Calendar._TT["INFO"] = "A propos du calendrier";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Heure Selecteur\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Pour la derniere version visitez: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribué par GNU LGPL.  Voir http://gnu.org/licenses/lgpl.html pour les details." +
-"\n\n" +
-"Selection de la date :\n" +
-"- Utiliser les bouttons \xab, \xbb  pour selectionner l\'annee\n" +
-"- Utiliser les bouttons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pour selectionner les mois\n" +
-"- Garder la souris sur n'importe quels boutons pour un selection plus rapide";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selection de l\'heure:\n" +
-"- Cliquer sur heures ou minutes pour incrementer\n" +
-"- ou Maj-clic pour decrementer\n" +
-"- ou clic et glisser deplacer pour un selection plus rapide";
-
-Calendar._TT["TOGGLE"] = "Changer le premier jour de la semaine";
-Calendar._TT["PREV_YEAR"] = "Année préc. (maintenir pour menu)";
-Calendar._TT["PREV_MONTH"] = "Mois préc. (maintenir pour menu)";
-Calendar._TT["GO_TODAY"] = "Atteindre date du jour";
-Calendar._TT["NEXT_MONTH"] = "Mois suiv. (maintenir pour menu)";
-Calendar._TT["NEXT_YEAR"] = "Année suiv. (maintenir pour menu)";
-Calendar._TT["SEL_DATE"] = "Choisir une date";
-Calendar._TT["DRAG_TO_MOVE"] = "Déplacer";
-Calendar._TT["PART_TODAY"] = " (Aujourd'hui)";
-Calendar._TT["MON_FIRST"] = "Commencer par lundi";
-Calendar._TT["SUN_FIRST"] = "Commencer par dimanche";
-Calendar._TT["CLOSE"] = "Fermer";
-Calendar._TT["TODAY"] = "Aujourd'hui";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%y";
-Calendar._TT["TT_DATE_FORMAT"] = " %A %e %B %Y";
-
-Calendar._TT["WK"] = "sem";
diff --git a/js/jscalendar/lang/calendar-hr-utf8.js b/js/jscalendar/lang/calendar-hr-utf8.js
deleted file mode 100644 (file)
index baf01b1..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Croatian language file for the DHTML Calendar version 0.9.2 
-* Author Krunoslav Zubrinic <krunoslav.zubrinic@vip.hr>, June 2003.
-* Feel free to use this script under the terms of the GNU Lesser General
-* Public License, as long as you do not remove or alter this notice.
-*/
-Calendar._DN = new Array
-("Nedjelja",
- "Ponedjeljak",
- "Utorak",
- "Srijeda",
- "Četvrtak",
- "Petak",
- "Subota",
- "Nedjelja");
-Calendar._MN = new Array
-("Siječanj",
- "Veljača",
- "Ožujak",
- "Travanj",
- "Svibanj",
- "Lipanj",
- "Srpanj",
- "Kolovoz",
- "Rujan",
- "Listopad",
- "Studeni",
- "Prosinac");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Promjeni dan s kojim počinje tjedan";
-Calendar._TT["PREV_YEAR"] = "Prethodna godina (dugi pritisak za meni)";
-Calendar._TT["PREV_MONTH"] = "Prethodni mjesec (dugi pritisak za meni)";
-Calendar._TT["GO_TODAY"] = "Idi na tekući dan";
-Calendar._TT["NEXT_MONTH"] = "Slijedeći mjesec (dugi pritisak za meni)";
-Calendar._TT["NEXT_YEAR"] = "Slijedeća godina (dugi pritisak za meni)";
-Calendar._TT["SEL_DATE"] = "Izaberite datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Pritisni i povuci za promjenu pozicije";
-Calendar._TT["PART_TODAY"] = " (today)";
-Calendar._TT["MON_FIRST"] = "Prikaži ponedjeljak kao prvi dan";
-Calendar._TT["SUN_FIRST"] = "Prikaži nedjelju kao prvi dan";
-Calendar._TT["CLOSE"] = "Zatvori";
-Calendar._TT["TODAY"] = "Danas";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, dd.mm.y";
-
-Calendar._TT["WK"] = "Tje";
\ No newline at end of file
diff --git a/js/jscalendar/lang/calendar-hr.js b/js/jscalendar/lang/calendar-hr.js
deleted file mode 100644 (file)
index 6c27f60..0000000
Binary files a/js/jscalendar/lang/calendar-hr.js and /dev/null differ
diff --git a/js/jscalendar/lang/calendar-hu.js b/js/jscalendar/lang/calendar-hu.js
deleted file mode 100644 (file)
index 64b38d6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Vasárnap",
- "Hétfõ",
- "Kedd",
- "Szerda",
- "Csütörtök",
- "Péntek",
- "Szombat",
- "Vasárnap");
-Calendar._MN = new Array
-("január",
- "február",
- "március",
- "április",
- "május",
- "június",
- "július",
- "augusztus",
- "szeptember",
- "október",
- "november",
- "december");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "A hét elsõ napjának beállítása";
-Calendar._TT["PREV_YEAR"] = "Elõzõ év (tartsa nyomva a menühöz)";
-Calendar._TT["PREV_MONTH"] = "Elõzõ hónap (tartsa nyomva a menühöz)";
-Calendar._TT["GO_TODAY"] = "Mai napra ugrás";
-Calendar._TT["NEXT_MONTH"] = "Köv. hónap (tartsa nyomva a menühöz)";
-Calendar._TT["NEXT_YEAR"] = "Köv. év (tartsa nyomva a menühöz)";
-Calendar._TT["SEL_DATE"] = "Válasszon dátumot";
-Calendar._TT["DRAG_TO_MOVE"] = "Húzza a mozgatáshoz";
-Calendar._TT["PART_TODAY"] = " (ma)";
-Calendar._TT["MON_FIRST"] = "Hétfõ legyen a hét elsõ napja";
-Calendar._TT["SUN_FIRST"] = "Vasárnap legyen a hét elsõ napja";
-Calendar._TT["CLOSE"] = "Bezár";
-Calendar._TT["TODAY"] = "Ma";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "M d, D";
-
-Calendar._TT["WK"] = "hét";
diff --git a/js/jscalendar/lang/calendar-it.js b/js/jscalendar/lang/calendar-it.js
deleted file mode 100644 (file)
index bb43449..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Domenica",
- "Lunedì",
- "Martedì",
- "Mercoledì",
- "Giovedì",
- "Venerdì",
- "Sabato",
- "Domenica");
-Calendar._MN = new Array
-("Gennaio",
- "Febbraio",
- "Marzo",
- "Aprile",
- "Maggio",
- "Giugno",
- "Luglio",
- "Agosto",
- "Settembre",
- "Ottobre",
- "Novembre",
- "Dicembre");
-
-// short month names
-Calendar._SMN = new Array
-("Gen",
- "Feb",
- "Mar",
- "Apr",
- "Mag",
- "Giu",
- "Lug",
- "Ago",
- "Set",
- "Ott",
- "Nov",
- "Dic");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "a proposito del calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Per le ultime versioni vai a: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribuito su licenza GNU LGPL.  Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
-"\n\n" +
-"selezione della data:\n" +
-"- Usa i bottoni \xab, \xbb per selezionare l'anno\n" +
-"- Usa i bottoni " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per selezionare il mese\n" +
-"- Utilizza il mouse per una selezione rapida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"selezione dell'ora:\n" +
-"- Clicca sull'ora visualizzata per aumentarla\n" +
-"- o Shift-click per diminuirla\n" +
-"- o click a trascina per la selezione rapida.";
-
-
-Calendar._TT["TOGGLE"] = "Modifica il primo giorno della settimana";
-Calendar._TT["PREV_YEAR"] = "Anno prec. (tieni premuto per menu)";
-Calendar._TT["PREV_MONTH"] = "Mese prec. (tieni premuto per menu)";
-Calendar._TT["GO_TODAY"] = "Vai a oggi";
-Calendar._TT["NEXT_MONTH"] = "Mese succ. (tieni premuto per menu)";
-Calendar._TT["NEXT_YEAR"] = "Anno succ. (tieni premuto per menu)";
-Calendar._TT["SEL_DATE"] = "Seleziona data";
-Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostare";
-Calendar._TT["PART_TODAY"] = " (oggi)";
-Calendar._TT["MON_FIRST"] = "Parti da lunedì";
-Calendar._TT["SUN_FIRST"] = "Parti da domenica";
-Calendar._TT["CLOSE"] = "Chiudi";
-Calendar._TT["TODAY"] = "Oggi";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b ";
-
-Calendar._TT["WK"] = "Setti";
diff --git a/js/jscalendar/lang/calendar-jp.js b/js/jscalendar/lang/calendar-jp.js
deleted file mode 100644 (file)
index 3bca7eb..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("\93ú",
- "\8c\8e",
- "\89Î",
- "\90\85",
- "\96Ø",
- "\8bà",
- "\93y",
- "\93ú");
-Calendar._MN = new Array
-("1\8c\8e",
- "2\8c\8e",
- "3\8c\8e",
- "4\8c\8e",
- "5\8c\8e",
- "6\8c\8e",
- "7\8c\8e",
- "8\8c\8e",
- "9\8c\8e",
- "10\8c\8e",
- "11\8c\8e",
- "12\8c\8e");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "\8fT\82Ì\8dÅ\8f\89\82Ì\97j\93ú\82ð\90Ø\82è\91Ö\82¦";
-Calendar._TT["PREV_YEAR"] = "\91O\94N";
-Calendar._TT["PREV_MONTH"] = "\91O\8c\8e";
-Calendar._TT["GO_TODAY"] = "\8d¡\93ú";
-Calendar._TT["NEXT_MONTH"] = "\97\82\8c\8e";
-Calendar._TT["NEXT_YEAR"] = "\97\82\94N";
-Calendar._TT["SEL_DATE"] = "\93ú\95t\91I\91ð";
-Calendar._TT["DRAG_TO_MOVE"] = "\83E\83B\83\93\83h\83E\82Ì\88Ú\93®";
-Calendar._TT["PART_TODAY"] = " (\8d¡\93ú)";
-Calendar._TT["MON_FIRST"] = "\8c\8e\97j\93ú\82ð\90æ\93ª\82É";
-Calendar._TT["SUN_FIRST"] = "\93ú\97j\93ú\82ð\90æ\93ª\82É";
-Calendar._TT["CLOSE"] = "\95Â\82\82é";
-Calendar._TT["TODAY"] = "\8d¡\93ú";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "%m\8c\8e %d\93ú (%a)";
-
-Calendar._TT["WK"] = "\8fT";
diff --git a/js/jscalendar/lang/calendar-ko-utf8.js b/js/jscalendar/lang/calendar-ko-utf8.js
deleted file mode 100644 (file)
index d71687a..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mishoo@infoiasi.ro>
-// Translation: Yourim Yi <yyi@yourim.net>
-// Encoding: EUC-KR
-// lang : ko
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-
-Calendar._DN = new Array
-("일요일",
- "월요일",
- "화요일",
- "수요일",
- "목요일",
- "금요일",
- "토요일",
- "일요일");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("일",
- "월",
- "화",
- "수",
- "목",
- "금",
- "토",
- "일");
-
-// full month names
-Calendar._MN = new Array
-("1월",
- "2월",
- "3월",
- "4월",
- "5월",
- "6월",
- "7월",
- "8월",
- "9월",
- "10월",
- "11월",
- "12월");
-
-// short month names
-Calendar._SMN = new Array
-("1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "calendar 에 대해서";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"\n"+
-"최신 버전을 받으시려면 http://dynarch.com/mishoo/calendar.epl 에 방문하세요\n" +
-"\n"+
-"GNU LGPL 라이센스로 배포됩니다. \n"+
-"라이센스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." +
-"\n\n" +
-"날짜 선택:\n" +
-"- 연도를 선택하려면 \xab, \xbb 버튼을 사용합니다\n" +
-"- 달을 선택하려면 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 버튼을 누르세요\n" +
-"- 계속 누르고 있으면 위 값들을 빠르게 선택하실 수 있습니다.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"시간 선택:\n" +
-"- 마우스로 누르면 시간이 증가합니다\n" +
-"- Shift 키와 함께 누르면 감소합니다\n" +
-"- 누른 상태에서 마우스를 움직이면 좀 더 빠르게 값이 변합니다.\n";
-
-Calendar._TT["PREV_YEAR"] = "지난 해 (길게 누르면 목록)";
-Calendar._TT["PREV_MONTH"] = "지난 달 (길게 누르면 목록)";
-Calendar._TT["GO_TODAY"] = "오늘 날짜로";
-Calendar._TT["NEXT_MONTH"] = "다음 달 (길게 누르면 목록)";
-Calendar._TT["NEXT_YEAR"] = "다음 해 (길게 누르면 목록)";
-Calendar._TT["SEL_DATE"] = "날짜를 선택하세요";
-Calendar._TT["DRAG_TO_MOVE"] = "마우스 드래그로 이동 하세요";
-Calendar._TT["PART_TODAY"] = " (오늘)";
-Calendar._TT["MON_FIRST"] = "월요일을 한 주의 시작 요일로";
-Calendar._TT["SUN_FIRST"] = "일요일을 한 주의 시작 요일로";
-Calendar._TT["CLOSE"] = "닫기";
-Calendar._TT["TODAY"] = "오늘";
-Calendar._TT["TIME_PART"] = "(Shift-)클릭 또는 드래그 하세요";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]";
-
-Calendar._TT["WK"] = "주";
diff --git a/js/jscalendar/lang/calendar-ko.js b/js/jscalendar/lang/calendar-ko.js
deleted file mode 100644 (file)
index b845aa5..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mishoo@infoiasi.ro>
-// Translation: Yourim Yi <yyi@yourim.net>
-// Encoding: EUC-KR
-// lang : ko
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-
-Calendar._DN = new Array
-("ÀÏ¿äÀÏ",
- "¿ù¿äÀÏ",
- "È­¿äÀÏ",
- "¼ö¿äÀÏ",
- "¸ñ¿äÀÏ",
- "±Ý¿äÀÏ",
- "Åä¿äÀÏ",
- "ÀÏ¿äÀÏ");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("ÀÏ",
- "¿ù",
- "ȭ",
- "¼ö",
- "¸ñ",
- "±Ý",
- "Åä",
- "ÀÏ");
-
-// full month names
-Calendar._MN = new Array
-("1¿ù",
- "2¿ù",
- "3¿ù",
- "4¿ù",
- "5¿ù",
- "6¿ù",
- "7¿ù",
- "8¿ù",
- "9¿ù",
- "10¿ù",
- "11¿ù",
- "12¿ù");
-
-// short month names
-Calendar._SMN = new Array
-("1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "calendar ¿¡ ´ëÇؼ­";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"\n"+
-"ÃֽŠ¹öÀüÀ» ¹ÞÀ¸½Ã·Á¸é http://dynarch.com/mishoo/calendar.epl ¿¡ ¹æ¹®Çϼ¼¿ä\n" +
-"\n"+
-"GNU LGPL ¶óÀ̼¾½º·Î ¹èÆ÷µË´Ï´Ù. \n"+
-"¶óÀ̼¾½º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº http://gnu.org/licenses/lgpl.html À» ÀÐÀ¸¼¼¿ä." +
-"\n\n" +
-"³¯Â¥ ¼±ÅÃ:\n" +
-"- ¿¬µµ¸¦ ¼±ÅÃÇÏ·Á¸é \xab, \xbb ¹öÆ°À» »ç¿ëÇÕ´Ï´Ù\n" +
-"- ´ÞÀ» ¼±ÅÃÇÏ·Á¸é " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ¹öÆ°À» ´©¸£¼¼¿ä\n" +
-"- °è¼Ó ´©¸£°í ÀÖÀ¸¸é À§ °ªµéÀ» ºü¸£°Ô ¼±ÅÃÇϽǠ¼ö ÀÖ½À´Ï´Ù.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"½Ã°£ ¼±ÅÃ:\n" +
-"- ¸¶¿ì½º·Î ´©¸£¸é ½Ã°£ÀÌ Áõ°¡ÇÕ´Ï´Ù\n" +
-"- Shift Å°¿Í ÇÔ²² ´©¸£¸é °¨¼ÒÇÕ´Ï´Ù\n" +
-"- ´©¸¥ »óÅ¿¡¼­ ¸¶¿ì½º¸¦ ¿òÁ÷À̸é Á» ´õ ºü¸£°Ô °ªÀÌ º¯ÇÕ´Ï´Ù.\n";
-
-Calendar._TT["PREV_YEAR"] = "Áö³­ ÇØ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["PREV_MONTH"] = "Áö³­ ´Þ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["GO_TODAY"] = "¿À´Ã ³¯Â¥·Î";
-Calendar._TT["NEXT_MONTH"] = "´ÙÀ½ ´Þ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["NEXT_YEAR"] = "´ÙÀ½ ÇØ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["SEL_DATE"] = "³¯Â¥¸¦ ¼±ÅÃÇϼ¼¿ä";
-Calendar._TT["DRAG_TO_MOVE"] = "¸¶¿ì½º µå·¡±×·Î À̵¿ Çϼ¼¿ä";
-Calendar._TT["PART_TODAY"] = " (¿À´Ã)";
-Calendar._TT["MON_FIRST"] = "¿ù¿äÀÏÀ» ÇÑ ÁÖÀÇ ½ÃÀÛ ¿äÀÏ·Î";
-Calendar._TT["SUN_FIRST"] = "ÀÏ¿äÀÏÀ» ÇÑ ÁÖÀÇ ½ÃÀÛ ¿äÀÏ·Î";
-Calendar._TT["CLOSE"] = "´Ý±â";
-Calendar._TT["TODAY"] = "¿À´Ã";
-Calendar._TT["TIME_PART"] = "(Shift-)Ŭ¸¯ ¶Ç´Â µå·¡±× Çϼ¼¿ä";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]";
-
-Calendar._TT["WK"] = "ÁÖ";
diff --git a/js/jscalendar/lang/calendar-lt-utf8.js b/js/jscalendar/lang/calendar-lt-utf8.js
deleted file mode 100644 (file)
index c3dca8d..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-// ** I18N
-
-// Calendar LT language
-// Author: Martynas Majeris, <martynas@solmetra.lt>
-// Encoding: UTF-8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sekmadienis",
- "Pirmadienis",
- "Antradienis",
- "Trečiadienis",
- "Ketvirtadienis",
- "Pentadienis",
- "Šeštadienis",
- "Sekmadienis");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sek",
- "Pir",
- "Ant",
- "Tre",
- "Ket",
- "Pen",
- "Šeš",
- "Sek");
-
-// full month names
-Calendar._MN = new Array
-("Sausis",
- "Vasaris",
- "Kovas",
- "Balandis",
- "Gegužė",
- "Birželis",
- "Liepa",
- "Rugpjūtis",
- "Rugsėjis",
- "Spalis",
- "Lapkritis",
- "Gruodis");
-
-// short month names
-Calendar._SMN = new Array
-("Sau",
- "Vas",
- "Kov",
- "Bal",
- "Geg",
- "Bir",
- "Lie",
- "Rgp",
- "Rgs",
- "Spa",
- "Lap",
- "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Apie kalendorių";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Naujausią versiją rasite: http://dynarch.com/mishoo/calendar.epl\n" +
-"Platinamas pagal GNU LGPL licenciją. Aplankykite http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"Datos pasirinkimas:\n" +
-"- Metų pasirinkimas: \xab, \xbb\n" +
-"- Mėnesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
-"- Nuspauskite ir laikykite pelės klavišą greitesniam pasirinkimui.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Laiko pasirinkimas:\n" +
-"- Spustelkite ant valandų arba minučių - skaičius padidės vienetu.\n" +
-"- Jei spausite kartu su Shift, skaičius sumažės.\n" +
-"- Greitam pasirinkimui spustelkite ir pajudinkite pelę.";
-
-Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)";
-Calendar._TT["PREV_MONTH"] = "Ankstesnis mėnuo (laikykite, jei norite meniu)";
-Calendar._TT["GO_TODAY"] = "Pasirinkti šiandieną";
-Calendar._TT["NEXT_MONTH"] = "Kitas mėnuo (laikykite, jei norite meniu)";
-Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)";
-Calendar._TT["SEL_DATE"] = "Pasirinkite datą";
-Calendar._TT["DRAG_TO_MOVE"] = "Tempkite";
-Calendar._TT["PART_TODAY"] = " (šiandien)";
-Calendar._TT["MON_FIRST"] = "Pirma savaitės diena - pirmadienis";
-Calendar._TT["SUN_FIRST"] = "Pirma savaitės diena - sekmadienis";
-Calendar._TT["CLOSE"] = "Uždaryti";
-Calendar._TT["TODAY"] = "Šiandien";
-Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d";
-
-Calendar._TT["WK"] = "sav";
diff --git a/js/jscalendar/lang/calendar-lt.js b/js/jscalendar/lang/calendar-lt.js
deleted file mode 100644 (file)
index 1b614b8..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-// ** I18N
-
-// Calendar LT language
-// Author: Martynas Majeris, <martynas@solmetra.lt>
-// Encoding: Windows-1257
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sekmadienis",
- "Pirmadienis",
- "Antradienis",
- "Treèiadienis",
- "Ketvirtadienis",
- "Pentadienis",
- "Ðeðtadienis",
- "Sekmadienis");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sek",
- "Pir",
- "Ant",
- "Tre",
- "Ket",
- "Pen",
- "Ðeð",
- "Sek");
-
-// full month names
-Calendar._MN = new Array
-("Sausis",
- "Vasaris",
- "Kovas",
- "Balandis",
- "Geguþë",
- "Birþelis",
- "Liepa",
- "Rugpjûtis",
- "Rugsëjis",
- "Spalis",
- "Lapkritis",
- "Gruodis");
-
-// short month names
-Calendar._SMN = new Array
-("Sau",
- "Vas",
- "Kov",
- "Bal",
- "Geg",
- "Bir",
- "Lie",
- "Rgp",
- "Rgs",
- "Spa",
- "Lap",
- "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Apie kalendoriø";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Naujausià versijà rasite: http://dynarch.com/mishoo/calendar.epl\n" +
-"Platinamas pagal GNU LGPL licencijà. Aplankykite http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"Datos pasirinkimas:\n" +
-"- Metø pasirinkimas: \xab, \xbb\n" +
-"- Mënesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
-"- Nuspauskite ir laikykite pelës klaviðà greitesniam pasirinkimui.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Laiko pasirinkimas:\n" +
-"- Spustelkite ant valandø arba minuèiø - skaièus padidës vienetu.\n" +
-"- Jei spausite kartu su Shift, skaièius sumaþës.\n" +
-"- Greitam pasirinkimui spustelkite ir pajudinkite pelæ.";
-
-Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)";
-Calendar._TT["PREV_MONTH"] = "Ankstesnis mënuo (laikykite, jei norite meniu)";
-Calendar._TT["GO_TODAY"] = "Pasirinkti ðiandienà";
-Calendar._TT["NEXT_MONTH"] = "Kitas mënuo (laikykite, jei norite meniu)";
-Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)";
-Calendar._TT["SEL_DATE"] = "Pasirinkite datà";
-Calendar._TT["DRAG_TO_MOVE"] = "Tempkite";
-Calendar._TT["PART_TODAY"] = " (ðiandien)";
-Calendar._TT["MON_FIRST"] = "Pirma savaitës diena - pirmadienis";
-Calendar._TT["SUN_FIRST"] = "Pirma savaitës diena - sekmadienis";
-Calendar._TT["CLOSE"] = "Uþdaryti";
-Calendar._TT["TODAY"] = "Ðiandien";
-Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d";
-
-Calendar._TT["WK"] = "sav";
diff --git a/js/jscalendar/lang/calendar-nl.js b/js/jscalendar/lang/calendar-nl.js
deleted file mode 100644 (file)
index 2ddc68b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Zondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrijdag",
- "Zaterdag",
- "Zondag");
-Calendar._MN = new Array
-("Januari",
- "Februari",
- "Maart",
- "April",
- "Mei",
- "Juni",
- "Juli",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Selecteer de eerste week-dag";
-Calendar._TT["PREV_YEAR"] = "Vorig jaar (ingedrukt voor menu)";
-Calendar._TT["PREV_MONTH"] = "Vorige maand (ingedrukt voor menu)";
-Calendar._TT["GO_TODAY"] = "Ga naar Vandaag";
-Calendar._TT["NEXT_MONTH"] = "Volgende maand (ingedrukt voor menu)";
-Calendar._TT["NEXT_YEAR"] = "Volgend jaar (ingedrukt voor menu)";
-Calendar._TT["SEL_DATE"] = "Selecteer datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Klik en sleep om te verplaatsen";
-Calendar._TT["PART_TODAY"] = " (vandaag)";
-Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
-Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
-Calendar._TT["CLOSE"] = "Sluiten";
-Calendar._TT["TODAY"] = "Vandaag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, d MM";
-
-Calendar._TT["WK"] = "wk";
diff --git a/js/jscalendar/lang/calendar-no.js b/js/jscalendar/lang/calendar-no.js
deleted file mode 100644 (file)
index 3325e34..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Søndag",
- "Mandag",
- "Tirsdag",
- "Onsdag",
- "Torsdag",
- "Fredag",
- "Lørdag",
- "Søndag");
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "Mars",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Desember");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Skift første ukedag";
-Calendar._TT["PREV_YEAR"] = "Et år tilbake (hold for meny)";
-Calendar._TT["PREV_MONTH"] = "En måned tilbake (hold for meny)";
-Calendar._TT["GO_TODAY"] = "Gå til i dag";
-Calendar._TT["NEXT_MONTH"] = "En måned fram (hold for meny)";
-Calendar._TT["NEXT_YEAR"] = "Et år fram (hold for meny)";
-Calendar._TT["SEL_DATE"] = "Velg dag";
-Calendar._TT["DRAG_TO_MOVE"] = "Dra vinduet";
-Calendar._TT["PART_TODAY"] = " (i dag)";
-Calendar._TT["MON_FIRST"] = "Vis mandag først";
-Calendar._TT["SUN_FIRST"] = "Vis søndag først";
-Calendar._TT["CLOSE"] = "Lukk vinduet";
-Calendar._TT["TODAY"] = "I dag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D d. M, y";
-
-Calendar._TT["WK"] = "wk";
diff --git a/js/jscalendar/lang/calendar-pl-utf8.js b/js/jscalendar/lang/calendar-pl-utf8.js
deleted file mode 100644 (file)
index 819281f..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// ** I18N
-
-// Calendar PL language
-// Author: Dariusz Pietrzak, <eyck@ghost.anime.pl>
-// Author: Janusz Piwowarski, <jpiw@go2.pl>
-// Encoding: utf-8
-// Distributed under the same terms as the calendar itself.
-
-Calendar._DN = new Array
-("Niedziela",
- "Poniedziałek",
- "Wtorek",
- "Środa",
- "Czwartek",
- "Piątek",
- "Sobota",
- "Niedziela");
-Calendar._SDN = new Array
-("Nie",
- "Pn",
- "Wt",
- "Śr",
- "Cz",
- "Pt",
- "So",
- "Nie");
-Calendar._MN = new Array
-("Styczeń",
- "Luty",
- "Marzec",
- "Kwiecień",
- "Maj",
- "Czerwiec",
- "Lipiec",
- "Sierpień",
- "Wrzesień",
- "Październik",
- "Listopad",
- "Grudzień");
-Calendar._SMN = new Array
-("Sty",
- "Lut",
- "Mar",
- "Kwi",
- "Maj",
- "Cze",
- "Lip",
- "Sie",
- "Wrz",
- "Paź",
- "Lis",
- "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O kalendarzu";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Aby pobrać najnowszą wersję, odwiedź: http://dynarch.com/mishoo/calendar.epl\n" +
-"Dostępny na licencji GNU LGPL. Zobacz szczegóły na http://gnu.org/licenses/lgpl.html." +
-"\n\n" +
-"Wybór daty:\n" +
-"- Użyj przycisków \xab, \xbb by wybrać rok\n" +
-"- Użyj przycisków " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " by wybrać miesiąc\n" +
-"- Przytrzymaj klawisz myszy nad jednym z powyższych przycisków dla szybszego wyboru.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Wybór czasu:\n" +
-"- Kliknij na jednym z pól czasu by zwiększyć jego wartość\n" +
-"- lub kliknij trzymając Shift by zmiejszyć jego wartość\n" +
-"- lub kliknij i przeciągnij dla szybszego wyboru.";
-
-//Calendar._TT["TOGGLE"] = "Zmień pierwszy dzień tygodnia";
-Calendar._TT["PREV_YEAR"] = "Poprzedni rok (przytrzymaj dla menu)";
-Calendar._TT["PREV_MONTH"] = "Poprzedni miesiąc (przytrzymaj dla menu)";
-Calendar._TT["GO_TODAY"] = "Idź do dzisiaj";
-Calendar._TT["NEXT_MONTH"] = "Następny miesiąc (przytrzymaj dla menu)";
-Calendar._TT["NEXT_YEAR"] = "Następny rok (przytrzymaj dla menu)";
-Calendar._TT["SEL_DATE"] = "Wybierz datę";
-Calendar._TT["DRAG_TO_MOVE"] = "Przeciągnij by przesunąć";
-Calendar._TT["PART_TODAY"] = " (dzisiaj)";
-Calendar._TT["MON_FIRST"] = "Wyświetl poniedziałek jako pierwszy";
-Calendar._TT["SUN_FIRST"] = "Wyświetl niedzielę jako pierwszą";
-Calendar._TT["CLOSE"] = "Zamknij";
-Calendar._TT["TODAY"] = "Dzisiaj";
-Calendar._TT["TIME_PART"] = "(Shift-)Kliknij lub przeciągnij by zmienić wartość";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%e %B, %A";
-
-Calendar._TT["WK"] = "ty";
diff --git a/js/jscalendar/lang/calendar-pl.js b/js/jscalendar/lang/calendar-pl.js
deleted file mode 100644 (file)
index c753842..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// ** I18N
-// Calendar PL language
-// Author: Artur Filipiak, <imagen@poczta.fm>
-// January, 2004
-// Encoding: UTF-8
-Calendar._DN = new Array
-("Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela");
-
-Calendar._SDN = new Array
-("N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N");
-
-Calendar._MN = new Array
-("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień");
-
-Calendar._SMN = new Array
-("Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O kalendarzu";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"For latest version visit: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Wybór daty:\n" +
-"- aby wybrać rok użyj przycisków \xab, \xbb\n" +
-"- aby wybrać miesiąc użyj przycisków " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
-"- aby przyspieszyć wybór przytrzymaj wciśnięty przycisk myszy nad ww. przyciskami.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Wybór czasu:\n" +
-"- aby zwiększyć wartość kliknij na dowolnym elemencie selekcji czasu\n" +
-"- aby zmniejszyć wartość użyj dodatkowo klawisza Shift\n" +
-"- możesz również poruszać myszkę w lewo i prawo wraz z wciśniętym lewym klawiszem.";
-
-Calendar._TT["PREV_YEAR"] = "Poprz. rok (przytrzymaj dla menu)";
-Calendar._TT["PREV_MONTH"] = "Poprz. miesiąc (przytrzymaj dla menu)";
-Calendar._TT["GO_TODAY"] = "Pokaż dziś";
-Calendar._TT["NEXT_MONTH"] = "Nast. miesiąc (przytrzymaj dla menu)";
-Calendar._TT["NEXT_YEAR"] = "Nast. rok (przytrzymaj dla menu)";
-Calendar._TT["SEL_DATE"] = "Wybierz datę";
-Calendar._TT["DRAG_TO_MOVE"] = "Przesuń okienko";
-Calendar._TT["PART_TODAY"] = " (dziś)";
-Calendar._TT["MON_FIRST"] = "Pokaż Poniedziałek jako pierwszy";
-Calendar._TT["SUN_FIRST"] = "Pokaż Niedzielę jako pierwszą";
-Calendar._TT["CLOSE"] = "Zamknij";
-Calendar._TT["TODAY"] = "Dziś";
-Calendar._TT["TIME_PART"] = "(Shift-)klik | drag, aby zmienić wartość";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y.%m.%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
\ No newline at end of file
diff --git a/js/jscalendar/lang/calendar-pt.js b/js/jscalendar/lang/calendar-pt.js
deleted file mode 100644 (file)
index 1184dfa..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terça",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sábado",
- "Domingo");
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Março",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Trocar o primeiro dia da semana";
-Calendar._TT["PREV_YEAR"] = "Ano Anterior (mantenha para menu)";
-Calendar._TT["PREV_MONTH"] = "Mês Anterior (mantenha para menu)";
-Calendar._TT["GO_TODAY"] = "Ir para hoje";
-Calendar._TT["NEXT_MONTH"] = "Próximo Mês (mantenha para menu)";
-Calendar._TT["NEXT_YEAR"] = "Próximo Ano (mantenha para menu)";
-Calendar._TT["SEL_DATE"] = "Escolha Data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-Calendar._TT["MON_FIRST"] = "Mostrar Segunda primeiro";
-Calendar._TT["SUN_FIRST"] = "Mostrar Domingo primeiro";
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "a-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "sm";
diff --git a/js/jscalendar/lang/calendar-ro.js b/js/jscalendar/lang/calendar-ro.js
deleted file mode 100644 (file)
index f4926f0..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Duminică",
- "Luni",
- "Marţi",
- "Miercuri",
- "Joi",
- "Vineri",
- "Sâmbătă",
- "Duminică");
-Calendar._SDN_len = 2;
-Calendar._MN = new Array
-("Ianuarie",
- "Februarie",
- "Martie",
- "Aprilie",
- "Mai",
- "Iunie",
- "Iulie",
- "August",
- "Septembrie",
- "Octombrie",
- "Noiembrie",
- "Decembrie");
-
-// tooltips
-Calendar._TT = {};
-
-Calendar._TT["INFO"] = "Despre calendar";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Pentru ultima versiune vizitaţi: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribuit sub GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Selecţia datei:\n" +
-"- Folosiţi butoanele \xab, \xbb pentru a selecta anul\n" +
-"- Folosiţi butoanele " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pentru a selecta luna\n" +
-"- Tineţi butonul mouse-ului apăsat pentru selecţie mai rapidă.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selecţia orei:\n" +
-"- Click pe ora sau minut pentru a mări valoarea cu 1\n" +
-"- Sau Shift-Click pentru a micşora valoarea cu 1\n" +
-"- Sau Click şi drag pentru a selecta mai repede.";
-
-Calendar._TT["PREV_YEAR"] = "Anul precedent (lung pt menu)";
-Calendar._TT["PREV_MONTH"] = "Luna precedentă (lung pt menu)";
-Calendar._TT["GO_TODAY"] = "Data de azi";
-Calendar._TT["NEXT_MONTH"] = "Luna următoare (lung pt menu)";
-Calendar._TT["NEXT_YEAR"] = "Anul următor (lung pt menu)";
-Calendar._TT["SEL_DATE"] = "Selectează data";
-Calendar._TT["DRAG_TO_MOVE"] = "Trage pentru a mişca";
-Calendar._TT["PART_TODAY"] = " (astăzi)";
-Calendar._TT["DAY_FIRST"] = "Afişează %s prima zi";
-Calendar._TT["WEEKEND"] = "0,6";
-Calendar._TT["CLOSE"] = "Închide";
-Calendar._TT["TODAY"] = "Astăzi";
-Calendar._TT["TIME_PART"] = "(Shift-)Click sau drag pentru a selecta";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %d %B";
-
-Calendar._TT["WK"] = "spt";
-Calendar._TT["TIME"] = "Ora:";
diff --git a/js/jscalendar/lang/calendar-ru.js b/js/jscalendar/lang/calendar-ru.js
deleted file mode 100644 (file)
index 459cec5..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Âîñêðåñåíüå",
- "Ïîíåäåëüíèê",
- "Âòîðíèê",
- "Ñðåäà",
- "×åòâåðã",
- "Ïÿòíèöà",
- "Ñóááîòà",
- "Âîñêðåñåíüå");
-Calendar._MN = new Array
-("ßíâàðü",
- "Ôåâðàëü",
- "Ìàðò",
- "Àïðåëü",
- "Ìàé",
- "Èþíü",
- "Èþëü",
- "Àâãóñò",
- "Ñåíòÿáðü",
- "Îêòÿáðü",
- "Íîÿáðü",
- "Äåêàáðü");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Ñìåíèòü äåíü íà÷àëà íåäåëè (ÏÍ/ÂÑ)";
-Calendar._TT["PREV_YEAR"] = "Ïðåä. ãîä (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["PREV_MONTH"] = "Ïðåä. ìåñÿö (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["GO_TODAY"] = "Íà ñåãîäíÿ";
-Calendar._TT["NEXT_MONTH"] = "Ñëåä. ìåñÿö (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["NEXT_YEAR"] = "Ñëåä. ãîä (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["SEL_DATE"] = "Âûáðàòü äàòó";
-Calendar._TT["DRAG_TO_MOVE"] = "Ïåðåòàùèòü";
-Calendar._TT["PART_TODAY"] = " (ñåãîäíÿ)";
-Calendar._TT["MON_FIRST"] = "Ïîêàçàòü ïîíåäåëüíèê ïåðâûì";
-Calendar._TT["SUN_FIRST"] = "Ïîêàçàòü âîñêðåñåíüå ïåðâûì";
-Calendar._TT["CLOSE"] = "Çàêðûòü";
-Calendar._TT["TODAY"] = "Ñåãîäíÿ";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "íåä";
diff --git a/js/jscalendar/lang/calendar-si.js b/js/jscalendar/lang/calendar-si.js
deleted file mode 100644 (file)
index 77f4aa8..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Slovenian language file for the DHTML Calendar version 0.9.2 \r
-* Author David Milost <mercy@volja.net>, January 2004.\r
-* Feel free to use this script under the terms of the GNU Lesser General\r
-* Public License, as long as you do not remove or alter this notice.\r
-*/\r
- // full day names\r
-Calendar._DN = new Array\r
-("Nedelja",\r
- "Ponedeljek",\r
- "Torek",\r
- "Sreda",\r
- "Četrtek",\r
- "Petek",\r
- "Sobota",\r
- "Nedelja");\r
- // short day names\r
- Calendar._SDN = new Array\r
-("Ned",\r
- "Pon",\r
- "Tor",\r
- "Sre",\r
- "Čet",\r
- "Pet",\r
- "Sob",\r
- "Ned");\r
-// short month names\r
-Calendar._SMN = new Array\r
-("Jan",\r
- "Feb",\r
- "Mar",\r
- "Apr",\r
- "Maj",\r
- "Jun",\r
- "Jul",\r
- "Avg",\r
- "Sep",\r
- "Okt",\r
- "Nov",\r
- "Dec");\r
-  // full month names\r
-Calendar._MN = new Array\r
-("Januar",\r
- "Februar",\r
- "Marec",\r
- "April",\r
- "Maj",\r
- "Junij",\r
- "Julij",\r
- "Avgust",\r
- "September",\r
- "Oktober",\r
- "November",\r
- "December");\r
-\r
-// tooltips\r
-// tooltips\r
-Calendar._TT = {};\r
-Calendar._TT["INFO"] = "O koledarju";\r
-\r
-Calendar._TT["ABOUT"] =\r
-"DHTML Date/Time Selector\n" +\r
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)\r
-"Za zadnjo verzijo pojdine na naslov: http://dynarch.com/mishoo/calendar.epl\n" +\r
-"Distribuirano pod GNU LGPL.  Poglejte http://gnu.org/licenses/lgpl.html za podrobnosti." +\r
-"\n\n" +\r
-"Izbor datuma:\n" +\r
-"- Uporabite \xab, \xbb gumbe za izbor leta\n" +\r
-"- Uporabite " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gumbe za izbor meseca\n" +\r
-"- Zadržite klik na kateremkoli od zgornjih gumbov za hiter izbor.";\r
-Calendar._TT["ABOUT_TIME"] = "\n\n" +\r
-"Izbor ćasa:\n" +\r
-"- Kliknite na katerikoli del ćasa za poveć. le-tega\n" +\r
-"- ali Shift-click za zmanj. le-tega\n" +\r
-"- ali kliknite in povlecite za hiter izbor.";\r
-\r
-Calendar._TT["TOGGLE"] = "Spremeni dan s katerim se prićne teden";\r
-Calendar._TT["PREV_YEAR"] = "Predhodnje leto (dolg klik za meni)";\r
-Calendar._TT["PREV_MONTH"] = "Predhodnji mesec (dolg klik za meni)";\r
-Calendar._TT["GO_TODAY"] = "Pojdi na tekoći dan";\r
-Calendar._TT["NEXT_MONTH"] = "Naslednji mesec (dolg klik za meni)";\r
-Calendar._TT["NEXT_YEAR"] = "Naslednje leto (dolg klik za meni)";\r
-Calendar._TT["SEL_DATE"] = "Izberite datum";\r
-Calendar._TT["DRAG_TO_MOVE"] = "Pritisni in povleci za spremembo pozicije";\r
-Calendar._TT["PART_TODAY"] = " (danes)";\r
-Calendar._TT["MON_FIRST"] = "Prikaži ponedeljek kot prvi dan";\r
-Calendar._TT["SUN_FIRST"] = "Prikaži nedeljo kot prvi dan";\r
-Calendar._TT["CLOSE"] = "Zapri";\r
-Calendar._TT["TODAY"] = "Danes";\r
-\r
-// date formats\r
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";\r
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";\r
-\r
-Calendar._TT["WK"] = "Ted";
\ No newline at end of file
diff --git a/js/jscalendar/lang/calendar-sk.js b/js/jscalendar/lang/calendar-sk.js
deleted file mode 100644 (file)
index 9b2dfc3..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-// ** I18N
-
-// Calendar SK language
-// Author: Peter Valach (pvalach@gmx.net)
-// Encoding: utf-8
-// Last update: 2003/10/29
-// Distributed under the same terms as the calendar itself.
-
-// full day names
-Calendar._DN = new Array
-("NedeÄľa",
- "Pondelok",
- "Utorok",
- "Streda",
- "Ĺ tvrtok",
- "Piatok",
- "Sobota",
- "NedeÄľa");
-
-// short day names
-Calendar._SDN = new Array
-("Ned",
- "Pon",
- "Uto",
- "Str",
- "Ĺ tv",
- "Pia",
- "Sob",
- "Ned");
-
-// full month names
-Calendar._MN = new Array
-("Január",
- "Február",
- "Marec",
- "AprĂ­l",
- "Máj",
- "JĂşn",
- "JĂşl",
- "August",
- "September",
- "OktĂłber",
- "November",
- "December");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "Máj",
- "JĂşn",
- "JĂşl",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O kalendári";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" +
-"PoslednĂş verziu nájdete na: http://dynarch.com/mishoo/calendar.epl\n" +
-"DistribuovanĂ© pod GNU LGPL.  ViÄŹ http://gnu.org/licenses/lgpl.html pre detaily." +
-"\n\n" +
-"VĂ˝ber dátumu:\n" +
-"- PouĹľite tlaÄŤidlá \xab, \xbb pre vĂ˝ber roku\n" +
-"- PouĹľite tlaÄŤidlá " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pre vĂ˝ber mesiaca\n" +
-"- Ak ktorĂ©koÄľvek z tĂ˝chto tlaÄŤidiel podržíte dlhšie, zobrazĂ­ sa rĂ˝chly vĂ˝ber.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"VĂ˝ber ÄŤasu:\n" +
-"- Kliknutie na niektorĂş poloĹľku ÄŤasu ju zvýši\n" +
-"- Shift-klik ju znĂ­Ĺľi\n" +
-"- Ak podržíte tlaÄŤĂ­tko stlaÄŤenĂ©, posĂşvanĂ­m menĂ­te hodnotu.";
-
-Calendar._TT["PREV_YEAR"] = "PredošlĂ˝ rok (podrĹľte pre menu)";
-Calendar._TT["PREV_MONTH"] = "PredošlĂ˝ mesiac (podrĹľte pre menu)";
-Calendar._TT["GO_TODAY"] = "PrejsĹĄ na dnešok";
-Calendar._TT["NEXT_MONTH"] = "Nasl. mesiac (podrĹľte pre menu)";
-Calendar._TT["NEXT_YEAR"] = "Nasl. rok (podrĹľte pre menu)";
-Calendar._TT["SEL_DATE"] = "ZvoÄľte dátum";
-Calendar._TT["DRAG_TO_MOVE"] = "PodrĹľanĂ­m tlaÄŤĂ­tka zmenĂ­te polohu";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "ZobraziĹĄ pondelok ako prvĂ˝";
-Calendar._TT["SUN_FIRST"] = "ZobraziĹĄ nedeÄľu ako prvĂş";
-Calendar._TT["CLOSE"] = "ZavrieĹĄ";
-Calendar._TT["TODAY"] = "Dnes";
-Calendar._TT["TIME_PART"] = "(Shift-)klik/ĹĄahanie zmenĂ­ hodnotu";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "$d. %m. %Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e. %b";
-
-Calendar._TT["WK"] = "týž";
diff --git a/js/jscalendar/lang/calendar-sp.js b/js/jscalendar/lang/calendar-sp.js
deleted file mode 100644 (file)
index 2937a30..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Domingo",
- "Lunes",
- "Martes",
- "Miercoles",
- "Jueves",
- "Viernes",
- "Sabado",
- "Domingo");
-Calendar._MN = new Array
-("Enero",
- "Febrero",
- "Marzo",
- "Abril",
- "Mayo",
- "Junio",
- "Julio",
- "Agosto",
- "Septiembre",
- "Octubre",
- "Noviembre",
- "Diciembre");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Información del Calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Nuevas versiones en: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribuida bajo licencia GNU LGPL.  Para detalles vea http://gnu.org/licenses/lgpl.html ." +
-"\n\n" +
-"Selección de Fechas:\n" +
-"- Use  \xab, \xbb para seleccionar el año\n" +
-"- Use " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
-"- Mantenga presionado el botón del ratón en cualquiera de las opciones superiores para un acceso rapido .";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selección del Reloj:\n" +
-"- Seleccione la hora para cambiar el reloj\n" +
-"- o presione  Shift-click para disminuirlo\n" +
-"- o presione click y arrastre del ratón para una selección rapida.";
-
-Calendar._TT["TOGGLE"] = "Primer dia de la semana";
-Calendar._TT["PREV_YEAR"] = "Año anterior (Presione para menu)";
-Calendar._TT["PREV_MONTH"] = "Mes Anterior (Presione para menu)";
-Calendar._TT["GO_TODAY"] = "Ir a Hoy";
-Calendar._TT["NEXT_MONTH"] = "Mes Siguiente (Presione para menu)";
-Calendar._TT["NEXT_YEAR"] = "Año Siguiente (Presione para menu)";
-Calendar._TT["SEL_DATE"] = "Seleccione fecha";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastre y mueva";
-Calendar._TT["PART_TODAY"] = " (Hoy)";
-Calendar._TT["MON_FIRST"] = "Lunes Primero";
-Calendar._TT["SUN_FIRST"] = "Domingo Primero";
-Calendar._TT["CLOSE"] = "Cerrar";
-Calendar._TT["TODAY"] = "Hoy";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
-
-Calendar._TT["WK"] = "Smn";
diff --git a/js/jscalendar/lang/calendar-sv.js b/js/jscalendar/lang/calendar-sv.js
deleted file mode 100644 (file)
index dc0a072..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// ** I18N
-
-// Calendar SV language (Swedish, svenska)
-// Author: Mihai Bazon, <mishoo@infoiasi.ro>
-// Translation team: <sv@li.org>
-// Translator: Leonard Norrgård <leonard.norrgard@refactor.fi>
-// Last translator: Leonard Norrgård <leonard.norrgard@refactor.fi>
-// Encoding: iso-latin-1
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible.  We strongly believe that
-// Unicode is the answer to a real internationalized world.  Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("söndag",
- "måndag",
- "tisdag",
- "onsdag",
- "torsdag",
- "fredag",
- "lördag",
- "söndag");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary.  We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-//   Calendar._SDN_len = N; // short day name length
-//   Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-Calendar._SDN_len = 2;
-Calendar._SMN_len = 3;
-
-// full month names
-Calendar._MN = new Array
-("januari",
- "februari",
- "mars",
- "april",
- "maj",
- "juni",
- "juli",
- "augusti",
- "september",
- "oktober",
- "november",
- "december");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om kalendern";
-
-Calendar._TT["ABOUT"] =
-"DHTML Datum/tid-väljare\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"För senaste version gå till: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribueras under GNU LGPL.  Se http://gnu.org/licenses/lgpl.html för detaljer." +
-"\n\n" +
-"Val av datum:\n" +
-"- Använd knapparna \xab, \xbb för att välja år\n" +
-"- Använd knapparna " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " för att välja månad\n" +
-"- Håll musknappen nedtryckt på någon av ovanstående knappar för snabbare val.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Val av tid:\n" +
-"- Klicka på en del av tiden för att öka den delen\n" +
-"- eller skift-klicka för att minska den\n" +
-"- eller klicka och drag för snabbare val.";
-
-Calendar._TT["PREV_YEAR"] = "Föregående år (håll för menu)";
-Calendar._TT["PREV_MONTH"] = "Föregående månad (håll för menu)";
-Calendar._TT["GO_TODAY"] = "Gå till dagens datum";
-Calendar._TT["NEXT_MONTH"] = "Följande månad (håll för menu)";
-Calendar._TT["NEXT_YEAR"] = "Följande år (håll för menu)";
-Calendar._TT["SEL_DATE"] = "Välj datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Drag för att flytta";
-Calendar._TT["PART_TODAY"] = " (idag)";
-Calendar._TT["MON_FIRST"] = "Visa måndag först";
-Calendar._TT["SUN_FIRST"] = "Visa söndag först";
-Calendar._TT["CLOSE"] = "Stäng";
-Calendar._TT["TODAY"] = "Idag";
-Calendar._TT["TIME_PART"] = "(Skift-)klicka eller drag för att ändra tid";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A %d %b %Y";
-
-Calendar._TT["WK"] = "vecka";
diff --git a/js/jscalendar/lang/calendar-tr.js b/js/jscalendar/lang/calendar-tr.js
deleted file mode 100644 (file)
index 2164687..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////////////////////\r
-//     Turkish Translation by Nuri AKMAN\r
-//     Location: Ankara/TURKEY\r
-//     e-mail  : nuriakman@hotmail.com\r
-//     Date    : April, 9 2003\r
-//\r
-//     Note: if Turkish Characters does not shown on you screen\r
-//               please include falowing line your html code:\r
-//\r
-//               <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">\r
-//\r
-//////////////////////////////////////////////////////////////////////////////////////////////\r
-\r
-// ** I18N\r
-Calendar._DN = new Array\r
-("Pazar",\r
- "Pazartesi",\r
- "Salý",\r
- "Çarþamba",\r
- "Perþembe",\r
- "Cuma",\r
- "Cumartesi",\r
- "Pazar");\r
-Calendar._MN = new Array\r
-("Ocak",\r
- "Þubat",\r
- "Mart",\r
- "Nisan",\r
- "Mayýs",\r
- "Haziran",\r
- "Temmuz",\r
- "Aðustos",\r
- "Eylül",\r
- "Ekim",\r
- "Kasým",\r
- "Aralýk");\r
-\r
-// tooltips\r
-Calendar._TT = {};\r
-Calendar._TT["TOGGLE"] = "Haftanýn ilk gününü kaydýr";\r
-Calendar._TT["PREV_YEAR"] = "Önceki Yýl (Menü için basýlý tutunuz)";\r
-Calendar._TT["PREV_MONTH"] = "Önceki Ay (Menü için basýlý tutunuz)";\r
-Calendar._TT["GO_TODAY"] = "Bugün'e git";\r
-Calendar._TT["NEXT_MONTH"] = "Sonraki Ay (Menü için basýlý tutunuz)";\r
-Calendar._TT["NEXT_YEAR"] = "Sonraki Yýl (Menü için basýlý tutunuz)";\r
-Calendar._TT["SEL_DATE"] = "Tarih seçiniz";\r
-Calendar._TT["DRAG_TO_MOVE"] = "Taþýmak için sürükleyiniz";\r
-Calendar._TT["PART_TODAY"] = " (bugün)";\r
-Calendar._TT["MON_FIRST"] = "Takvim Pazartesi gününden baþlasýn";\r
-Calendar._TT["SUN_FIRST"] = "Takvim Pazar gününden baþlasýn";\r
-Calendar._TT["CLOSE"] = "Kapat";\r
-Calendar._TT["TODAY"] = "Bugün";\r
-\r
-// date formats\r
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";\r
-Calendar._TT["TT_DATE_FORMAT"] = "d MM y, DD";\r
-\r
-Calendar._TT["WK"] = "Hafta";\r
diff --git a/js/jscalendar/lang/calendar-zh.js b/js/jscalendar/lang/calendar-zh.js
deleted file mode 100644 (file)
index c0c5456..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** Translated by ATang ** I18N\r
-Calendar._DN = new Array\r
-("ÐÇÆÚÈÕ",\r
- "ÐÇÆÚÒ»",\r
- "ÐÇÆÚ¶þ",\r
- "ÐÇÆÚÈý",\r
- "ÐÇÆÚËÄ",\r
- "ÐÇÆÚÎå",\r
- "ÐÇÆÚÁù",\r
- "ÐÇÆÚÈÕ");\r
-Calendar._MN = new Array\r
-("Ò»ÔÂ",\r
- "¶þÔÂ",\r
- "ÈýÔÂ",\r
- "ËÄÔÂ",\r
- "ÎåÔÂ",\r
- "ÁùÔÂ",\r
- "ÆßÔÂ",\r
- "°ËÔÂ",\r
- "¾ÅÔÂ",\r
- "Ê®ÔÂ",\r
- "ʮһÔÂ",\r
- "Ê®¶þÔÂ");\r
-\r
-// tooltips\r
-Calendar._TT = {};\r
-Calendar._TT["TOGGLE"] = "Çл»ÖÜ¿ªÊ¼µÄÒ»Ìì";\r
-Calendar._TT["PREV_YEAR"] = "ÉÏÒ»Äê (°´×¡³ö²Ëµ¥)";\r
-Calendar._TT["PREV_MONTH"] = "ÉÏÒ»Ô (°´×¡³ö²Ëµ¥)";\r
-Calendar._TT["GO_TODAY"] = "µ½½ñÈÕ";\r
-Calendar._TT["NEXT_MONTH"] = "ÏÂÒ»Ô (°´×¡³ö²Ëµ¥)";\r
-Calendar._TT["NEXT_YEAR"] = "ÏÂÒ»Äê (°´×¡³ö²Ëµ¥)";\r
-Calendar._TT["SEL_DATE"] = "Ñ¡ÔñÈÕÆÚ";\r
-Calendar._TT["DRAG_TO_MOVE"] = "Í϶¯";\r
-Calendar._TT["PART_TODAY"] = " (½ñÈÕ)";\r
-Calendar._TT["MON_FIRST"] = "Ê×ÏÈÏÔʾÐÇÆÚÒ»";\r
-Calendar._TT["SUN_FIRST"] = "Ê×ÏÈÏÔʾÐÇÆÚÈÕ";\r
-Calendar._TT["CLOSE"] = "¹Ø±Õ";\r
-Calendar._TT["TODAY"] = "½ñÈÕ";\r
-\r
-// date formats\r
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";\r
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";\r
-\r
-Calendar._TT["WK"] = "ÖÜ";\r
diff --git a/js/jscalendar/menuarrow.gif b/js/jscalendar/menuarrow.gif
deleted file mode 100644 (file)
index ed2dee0..0000000
Binary files a/js/jscalendar/menuarrow.gif and /dev/null differ
diff --git a/js/jscalendar/menuarrow2.gif b/js/jscalendar/menuarrow2.gif
deleted file mode 100644 (file)
index 40c0aad..0000000
Binary files a/js/jscalendar/menuarrow2.gif and /dev/null differ
index a7e2ef1..f606fad 100644 (file)
@@ -152,6 +152,8 @@ $self->{texts} = {
   'Add and edit units'          => 'Einheiten erfassen und bearbeiten',
   'Add bank account'            => 'Bankkonto erfassen',
   'Add custom variable'         => 'Benutzerdefinierte Variable erfassen',
+  'Add link: select records to link with' => 'Verknüpfungen hinzufügen: zu verknüpfende Belege auswählen',
+  'Add links'                   => 'Verknüpfungen hinzufügen',
   'Add note'                    => 'Notiz erfassen',
   'Add unit'                    => 'Einheit hinzuf&uuml;gen',
   'Address'                     => 'Adresse',
@@ -209,6 +211,7 @@ $self->{texts} = {
   'Are you sure you want to delete this payment term?' => 'Wollen Sie diese Zahlungsbedingungen wirklich löschen?',
   'Are you sure you want to remove the marked entries from the queue?' => 'Sind Sie sicher, dass die markierten Einträge von der Warteschlange gelöscht werden sollen?',
   'Are you sure you want to update the prices' => 'Sind Sie sicher, dass Sie die Preise aktualisieren wollen?',
+  'Are you sure?'               => 'Sind Sie sicher?',
   'Article Code'                => 'Artikelkürzel',
   'Article Code missing!'       => 'Artikelkürzel fehlt',
   'Article type (see below)'    => 'Artikeltyp (siehe unten)',
@@ -541,7 +544,7 @@ $self->{texts} = {
   'Customer/Vendor'             => 'Kunde/Lieferant',
   'Customer/Vendor (database ID)' => 'Kunde/Lieferant (Datenbank-ID)',
   'Customer/Vendor Name'        => 'Kunde/Lieferant',
-  'Customer/Vendor Number'      => 'Kundennummer/Lieferantennummer',
+  'Customer/Vendor Number'      => 'Kunden-/Lieferantennummer',
   'Customername'                => 'Kundenname',
   'Customernumberinit'          => 'Kunden-/Lieferantennummernkreis',
   'Customers'                   => 'Kunden',
@@ -1127,6 +1130,7 @@ $self->{texts} = {
   'Line and column'             => 'Zeile und Spalte',
   'Line endings'                => 'Zeilenumbr&uuml;che',
   'Link direction'              => 'Verknüpfungsrichtung',
+  'Link to'                     => 'Verknüpfen mit',
   'Linked Records'              => 'Verknüpfte Belege',
   'List Accounts'               => 'Konten anzeigen',
   'List Languages'              => 'Sprachen anzeigen',
@@ -1281,8 +1285,6 @@ $self->{texts} = {
   'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
   'No warehouse has been created yet or the quantity of the bins is not configured yet.' => 'Es wurde noch kein Lager angelegt, bzw. die dazugehörigen Lagerplätze sind noch nicht konfiguriert.',
   'No.'                         => 'Position',
-  'Non-taxable Purchases'       => 'Nicht zu versteuernde Einkäufe',
-  'Non-taxable Sales'           => 'Nicht zu versteuernde Verkäufe',
   'None'                        => 'Kein',
   'Not Discountable'            => 'Nicht rabattierfähig',
   'Not delivered'               => 'Nicht geliefert',
@@ -1569,7 +1571,6 @@ $self->{texts} = {
   'Reconciliation'              => 'Kontenabgleich',
   'Record Vendor Invoice'       => 'Einkaufsrechnung erfassen',
   'Record in'                   => 'Buchen auf',
-  'Record not found'            => 'Objekt nicht gefunden',
   'Recorded Tax'                => 'Gespeicherte Steuern',
   'Recorded taxkey'             => 'Gespeicherter Steuerschlüssel',
   'Reference'                   => 'Referenz',
@@ -1676,6 +1677,7 @@ $self->{texts} = {
   'Save settings as'            => 'Einstellungen speichern unter',
   'Saving the file \'%s\' failed. OS error message: %s' => 'Das Speichern der Datei \'%s\' schlug fehl. Fehlermeldung des Betriebssystems: %s',
   'Screen'                      => 'Bildschirm',
+  'Search'                      => 'Suchen',
   'Search AP Aging'             => 'Offene Verbindlichkeiten',
   'Search AR Aging'             => 'Offene Forderungen',
   'Search contacts'             => 'Ansprechpersonensuche',
@@ -1965,6 +1967,7 @@ $self->{texts} = {
   'The end date is the last day for which invoices will possibly be created.' => 'Das Enddatum ist das letztmögliche Datum, an dem eine Rechnung erzeugt wird.',
   'The execution schedule is invalid.' => 'Der Ausführungszeitplan ist ungültig.',
   'The execution type is invalid.' => 'Der Ausführungstyp ist ungültig.',
+  'The existing record has been created from the link target to add.' => 'Der bestehende Beleg wurde aus dem auszuwählenden Verknüpfungsziel erstellt.',
   'The factor is missing in row %d.' => 'Der Faktor fehlt in Zeile %d.',
   'The factor is missing.'      => 'Der Faktor fehlt.',
   'The first reason is that kivitendo contained a bug which resulted in the wrong taxkeys being recorded for transactions in which two entries are posted for the same chart with different taxkeys.' => 'Der erste Grund war ein Fehler in kivitendo, der dazu führte, dass bei einer Transaktion, bei der zwei Buchungen mit unterschiedlichen Steuerschlüsseln auf dasselbe Konto durchgeführt wurden, die falschen Steuerschlüssel gespeichert wurden.',
@@ -1987,6 +1990,7 @@ $self->{texts} = {
   'The group memberships have been saved.' => 'Die Gruppenmitgliedschaften wurden gespeichert.',
   'The group name is missing.'  => 'Der Gruppenname fehlt.',
   'The items are imported accoring do their number "X" regardless of the column order inside the file.' => 'Die Einträge werden in der Reihenfolge ihrer Indizes "X" unabhängig von der Spaltenreihenfolge in der Datei importiert.',
+  'The link target to add has been created from the existing record.' => 'Das auszuwählende Verknüpfungsziel wurde aus dem bestehenden Beleg erstellt.',
   'The list has been printed.'  => 'Die Liste wurde ausgedruckt.',
   'The long description is missing.' => 'Der Langtext fehlt.',
   'The name in row %d has already been used before.' => 'Der Name in Zeile %d wurde vorher bereits benutzt.',
index cfb85d9..baf0dc6 100755 (executable)
@@ -511,7 +511,7 @@ sub scanhtmlfile {
 
       while ($line =~ m/\[\%[^\w]*(\w+)\.\w+\(/g) {
         my $plugin = $1;
-        $plugins{needed}->{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript MultiColumnIterator JSON L P));
+        $plugins{needed}->{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript JSON L P));
       }
 
       $plugins{needed}->{T8} = 1 if $line =~ m/\[\%.*\|.*\$T8/;
diff --git a/sql/Pg-upgrade2/delete_customertax_vendortax_partstax.sql b/sql/Pg-upgrade2/delete_customertax_vendortax_partstax.sql
new file mode 100644 (file)
index 0000000..0d48468
--- /dev/null
@@ -0,0 +1,7 @@
+-- @tag: delete_customertax_vendortax_partstax
+-- @description: Alte Tabellen löschen
+-- @depends: release_3_0_0
+-- @charset: utf-8
+DROP TABLE customertax;
+DROP TABLE vendortax;
+DROP TABLE partstax;
diff --git a/sql/Pg-upgrade2/drop_gifi.sql b/sql/Pg-upgrade2/drop_gifi.sql
new file mode 100644 (file)
index 0000000..987631c
--- /dev/null
@@ -0,0 +1,13 @@
+-- @tag: drop_gifi
+-- @description: Entfernt Spalten gifi_accno und pos_ustva aus der Tabelle chart. Tabelle gifi wird gelöscht.
+-- @depends: release_3_0_0 
+-- @charset: utf-8
+
+  --Lösche Tabelle gifi:
+  DROP TABLE gifi;
+
+  --Lösche Spalte gifi_accno aus chart:
+  ALTER TABLE chart DROP COLUMN gifi_accno;
+
+  --Lösche Spalte pos_ustva aus chart:
+  ALTER TABLE chart DROP COLUMN pos_ustva;
index 0b6778b..2ce20ff 100644 (file)
@@ -4,7 +4,6 @@
 [%- USE T8 %]
 [%- USE url %]
 [%- SET list_spool__callback = href _ '&sort=' _ sort %]
-[% L.javascript_tag('jquery.checkall') %]
 
 <h1>[% title | html %]</h1>
 
@@ -79,4 +78,3 @@
 [% L.select_tag('printer', ALL_PRINTERS, title_key = 'printer_description') %]
 
 </form>
-
index fe5ccd2..8076bd8 100644 (file)
@@ -1,10 +1,6 @@
 [%- USE T8 %]
 [%- USE L %]
-[% USE HTML %]<style type="text/css">@import url(js/jscalendar/calendar-win2k-1.css);</style>
-<script type="text/javascript" src="js/jscalendar/calendar.js"></script>
-<script type="text/javascript" src="js/jscalendar/lang/calendar-de.js"></script>
-<script type="text/javascript" src="js/jscalendar/calendar-setup.js"></script>
-
+[% USE HTML %]
 <h1>[% 'history search engine' | $T8 %]</h1>
 
 <form method="post" action="am.pl">
   });
   //-->
 </script>
-
index 0d271c0..2bd7450 100644 (file)
   </tr>
   <tr>
    <th align="right">[% 'Delivery Date' | $T8 %] [% 'From Date' | $T8 %]</th>
-   <td>[% L.date_tag('filter.reqdate:date::ge', filter.reqdate_date__ge, cal_align = 'BR') %]</td>
+   <td>[% L.date_tag('filter.reqdate:date::ge', filter.reqdate_date__ge) %]</td>
   </tr>
   <tr>
    <th align="right">[% 'Delivery Date' | $T8 %] [% 'To Date' | $T8 %]</th>
-   <td>[% L.date_tag('filter.reqdate:date::le', filter.reqdate_date__le, cal_align = 'BR') %]</td>
+   <td>[% L.date_tag('filter.reqdate:date::le', filter.reqdate_date__le) %]</td>
   </tr>
   <tr>
    <th align="right">[% 'Quantity' | $T8 %]</th>
index a33fe8b..b7ee6ed 100644 (file)
@@ -1,7 +1,6 @@
 [%- USE T8 %]
 [% USE HTML %]
 [% USE L %]
-[% L.javascript_tag('jquery.checkall') %]
 [% SET all_active = 1 %][% FOREACH row = DUNNINGS %][% IF !row.active %][% SET all_active = 0 %][% LAST %][% END %][% END %]
 [% SET all_email = 1 %][% FOREACH row = DUNNINGS %][% IF !row.email %][% SET all_email = 0 %][% LAST %][% END %][% END %]
  <script type="text/javascript" src="js/common.js"></script>
index bdddd26..d1d80c3 100644 (file)
       </table>
      </td>
     </tr>
-
-    <script type="text/javascript">
-     <!-- Calendar.setup({ inputField : "priceupdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" }); //-->
-    </script>
index 6d7db5e..cb40886 100644 (file)
      </td>
 
     </tr>
-  [% IF $changeable %]
-    <script type='text/javascript'>
-     $('input[name="paid_[% i %]"]').blur(function(){ check_right_number_format(this) });
-     $('#datepaid_[% i %]').blur(function(){ check_right_date_format(this) });
-    </script>
-  [% END %]
 
 [% END # foreach %]
 
index 6f6bf23..8c849fd 100644 (file)
         </tr>
         <tr>
           <th align="right">[% 'Credit Note Date' | $T8 %]</th>
-          <td>[% L.date_tag('invdate', invdate, onBlur='check_right_date_format(this)', cal_align='BL', onChange='set_duedate(this)') %]</td>
+          <td>[% L.date_tag('invdate', invdate, onChange='set_duedate(this)') %]</td>
         </tr>
 [%- ELSE %]
         <tr>
         </tr>
         <tr>
           <th align="right">[% 'Invoice Date' | $T8 %]</th>
-          <td>[% L.date_tag('invdate', invdate, onBlur='check_right_date_format(this)', cal_align='BL', onChange='set_duedate(this)') %]</td>
+          <td>[% L.date_tag('invdate', invdate, onChange='set_duedate(this)') %]</td>
         </tr>
         <tr>
           <th align="right">[% 'Due Date' | $T8 %]</th>
-          <td>[% L.date_tag('duedate', duedate, onBlur='check_right_date_format(this)', cal_align='BL') %]</td>
+          <td>[% L.date_tag('duedate', duedate) %]</td>
         </tr>
 [%- END %]
 
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Order Date' | $T8 %]</th>
-          <td>[% L.date_tag('orddate', orddate, onBlur='check_right_date_format(this)', cal_align='BL') %]</td>
+          <td>[% L.date_tag('orddate', orddate) %]</td>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Quotation Date' | $T8 %]</th>
-          <td>[% L.date_tag('quodate', quodate, onBlur='check_right_date_format(this)', cal_align='BL') %]</td>
+          <td>[% L.date_tag('quodate', quodate) %]</td>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Project Number' | $T8 %]</th>
index c1c4c9e..7aa2732 100644 (file)
         </tr>
         <tr>
           <th align="right">[% 'Credit Note Date' | $T8 %]</th>
-          <td>[% L.date_tag('invdate', invdate, cal_align='BL', onchange='set_duedate()') %]</td>
+          <td>[% L.date_tag('invdate', invdate, onchange='set_duedate()') %]</td>
         </tr>
 [%- ELSE %]
         <tr>
         </tr>
         <tr>
           <th align="right">[% 'Invoice Date' | $T8 %]</th>
-          <td>[% L.date_tag('invdate', invdate, cal_align='BL', onchange='set_duedate()') %]</td>
+          <td>[% L.date_tag('invdate', invdate, onchange='set_duedate()') %]</td>
         </tr>
         <tr>
           <th align="right">[% 'Due Date' | $T8 %]</th>
-          <td>[% L.date_tag('duedate', duedate, cal_align='BL') %]</td>
+          <td>[% L.date_tag('duedate', duedate) %]</td>
         </tr>
         <tr>
         <th align="right" nowrap>[% 'Delivery Order Number' | $T8 %]</th>
 [%- END %]
         <tr>
           <th align="right">[% 'Delivery Date' | $T8 %]</th>
-          <td>[% L.date_tag('deliverydate', deliverydate, cal_align='BL') %]</td>
+          <td>[% L.date_tag('deliverydate', deliverydate) %]</td>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Order Number' | $T8 %]</th>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Order Date' | $T8 %]</th>
-          <td>[% L.date_tag('orddate', orddate, cal_align='BL') %]</td>
+          <td>[% L.date_tag('orddate', orddate) %]</td>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Quotation Number' | $T8 %]</th>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Quotation Date' | $T8 %]</th>
-          <td>[% L.date_tag('quodate', quodate, cal_align='BL') %]</td>
+          <td>[% L.date_tag('quodate', quodate) %]</td>
         </tr>
         <tr>
           <th align="right" nowrap>[% 'Customer Order Number' | $T8 %]</th>
index 49ecb0a..3508ef8 100644 (file)
@@ -2,4 +2,19 @@
 $(function() {
   setupPoints('[% myconfig.numberformat %]', '[% 'wrongformat' | $T8 %]');
   setupDateFormat('[% myconfig.dateformat %]', '[% 'Falsches Datumsformat!' | $T8 %]');
+
+  $.datepicker.setDefaults(
+    $.extend({}, $.datepicker.regional["[% myconfig.countrycode %]"], {
+      dateFormat: "[% datefmt %]",
+      showOn: "button",
+      showButtonPanel: true,
+      changeMonth: true,
+      changeYear: true,
+      buttonImage: "image/calendar.png",
+      buttonImageOnly: true
+  }));
+
+  $('.datepicker').each(function() {
+    $(this).datepicker();
+  });
 })
index bfad52d..c9078ef 100644 (file)
 
 <hr size="3" noshade>
 
-<p>[% PRINT_OPTIONS %]</p>
+<p>[% print_options %]</p>
 
 [% label_edit %]<br>
 <input class="submit" type="submit" name="action_update" id="update_button" value="[% 'Update' | $T8 %]">
diff --git a/templates/webpages/presenter/record/empty_record_list.html b/templates/webpages/presenter/record/empty_record_list.html
deleted file mode 100644 (file)
index d082315..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-[% USE LxERP %]
-<p class="message_hint">[% LxERP.t8('No data was found.') %]</p>
index 0016612..82c16f3 100644 (file)
@@ -1,19 +1,45 @@
 [%- USE LxERP -%][%- USE L -%][%- USE HTML -%][%- USE JavaScript -%]
 
-<div id="[% form_prefix %]_list">
- <p>[% nownow %]</p>
+<div id="record_links_list">
+ [%- IF output %]
+  [% output %]
+ [%- ELSE %]
+  <p class="message_hint">[% LxERP.t8('No data was found.') %]</p>
+ [%- END %]
 
- [% output %]
-
-[%- IF edit_record_links %]
- <div>
-  [% L.button_tag(form_prefix _ '_delete()', LxERP.t8('Delete links')) %]
- </div>
+ [%- IF edit_record_links %]
+  <div>
+   [% L.button_tag('record_links_add()', LxERP.t8('Add links')) %]
+   [% IF output %]
+    [% L.button_tag('record_links_delete()', LxERP.t8('Delete links')) %]
+   [%- END %]
+  </div>
 
  <script type="text/javascript">
   <!--
-function [% form_prefix %]_delete() {
-  var checkboxes = $('.record_links_delete').filter(function () { return $(this).attr('checked'); });
+$(function() {
+
+});
+
+function record_links_add() {
+  var url = "controller.pl?action=RecordLinks/ajax_add_filter&object_model=[% JavaScript.escape(object_model) %]&object_id=[% JavaScript.escape(object_id) %]&";
+  var id  = 'record_links_add';
+
+  $('#' + id).remove();
+  var div     = $('<div id="' + id + '" class="jqmWindow record_list_overlay"></div>').hide().appendTo('body');
+  var close   = $('<div class="close"></div>').appendTo(div);
+  var content = $('<div class="overlay_content"></div>').appendTo(div);
+  div.jqm({ modal: true });
+  div.jqmShow();
+  $.ajax({ url: url, success: function(new_html) { $(content).html(new_html); } });
+  $(close).click(function() {
+    div.jqmHide();
+    div.remove();
+  });
+}
+
+function record_links_delete() {
+  var checkboxes = $('.record_links_delete').filter(function () { return $(this).prop('checked'); });
 
   if ((checkboxes.size() == 0) || !confirm('[% LxERP.t8('Do you really want to delete the selected links?') %]'))
     return false;
@@ -27,7 +53,7 @@ function [% form_prefix %]_delete() {
   $.ajax({
     url:     "controller.pl?" + checkboxes.serialize(),
     data:    data,
-    success: function(new_data) { $('#[% form_prefix %]_list').replaceWith(new_data); }
+    success: function(new_data) { $('#record_links_list').replaceWith(new_data); }
   });
 
   return false;
index e1395a2..e75657a 100644 (file)
@@ -2,10 +2,12 @@
 <div class="listtop">[%- P.escape(title) %]</div>
 
 <div style="padding-bottom: 15px">
- <table style="width: 100%">
+ <table style="width: 100%" id="record_list_[% type %]">
   <thead>
    <tr>
-    [%- IF edit_record_links %]<th class="listheading"></th>[%- END %]
+    [%- IF edit_record_links %]
+    <th class="listheading">[% L.checkbox_tag('record_links_delete_checkall_' _ type) %]</th>
+    [%- END %]
     [%- FOREACH column = TABLE_HEADER %]
     <th class="listheading"[% IF column.alignment %] align="[% column.alignment %]"[% END %]>[%- P.escape(column.value) %]</th>
     [%- END %]
@@ -16,7 +18,7 @@
    [%- FOREACH row = TABLE_ROWS %]
    <tr class="listrow[% loop.count % 2 %]">
     [%- IF edit_record_links %]
-     <td>[%- L.checkbox_tag(form_prefix _ '_delete[]', 'value'=row.record_link.from_table _ '__' _ row.record_link.from_id _ '__' _ row.record_link.to_table _ '__' _ row.record_link.to_id, 'class'='record_links_delete') %]</td>
+     <td>[%- L.checkbox_tag('record_links_delete[]', 'value'=row.record_link.from_table _ '__' _ row.record_link.from_id _ '__' _ row.record_link.to_table _ '__' _ row.record_link.to_id, 'class'='record_links_delete') %]</td>
     [%- END %]
     [%- FOREACH column = row.columns %]
     <td[% IF column.alignment %] align="[% column.alignment %]"[% END %]>
@@ -30,3 +32,9 @@
   </tbody>
  </table>
 </div>
+
+[% IF edit_record_links %]
+<script type="text/javascript">
+$('#record_links_delete_checkall_[% type %]').checkall("#record_list_[% type %] tbody :checkbox");
+</script>
+[%- END %]
index 2552964..baa3ac6 100644 (file)
@@ -2,7 +2,6 @@
 [%- USE L  %]
 [%- USE T8 %]
 [%- USE LxERP  %]
-[%- L.javascript_tag('jquery.checkall')  %]
 
 <h1>[% accno | html %]--[% account | html %]</h1>
 
 <input type=submit class=submit name=action value="[% 'Done' | $T8 %]">
 
 </form>
-
diff --git a/templates/webpages/record_links/add_filter.html b/templates/webpages/record_links/add_filter.html
new file mode 100644 (file)
index 0000000..1ef213b
--- /dev/null
@@ -0,0 +1,96 @@
+[%- USE L -%][%- USE LxERP -%][%- USE JavaScript -%]
+[%- SET style='width: 500px' %]
+<div class="listtop">[%- LxERP.t8("Add link: select records to link with") %]</div>
+
+
+<form method="post" action="controller.pl">
+ [% L.hidden_tag('object_model',   SELF.object_model) %]
+ [% L.hidden_tag('object_id',      SELF.object_id) %]
+
+ <table>
+  <tr>
+   <td>[%- LxERP.t8("Link to") %]:</td>
+   <td>[% L.select_tag('link_type', LINK_TYPES, default=DEFAULT_LINK_TYPE, style=style) %]</td>
+  </tr>
+
+  <tr>
+   <td>[%- LxERP.t8("Link direction") %]:</td>
+   <td>[% L.select_tag('link_direction',
+                       [ [ 'from', LxERP.t8("The link target to add has been created from the existing record."), ],
+                         [ 'to',   LxERP.t8("The existing record has been created from the link target to add."), ], ],
+                       style=style) %]</td>
+  </tr>
+
+  <tr>
+   <td>[%- LxERP.t8("Customer/Vendor Number") %]:</td>
+   <td>[% L.input_tag('vc_number', is_sales ? SELF.object.customer.customernumber : SELF.object.vendor.vendornumber, style=style) %]</td>
+  </tr>
+
+  <tr>
+   <td>[%- LxERP.t8("Customer/Vendor Name") %]:</td>
+   <td>[% L.input_tag('vc_name', is_sales ? SELF.object.customer.name : SELF.object.vendor.name, style=style) %]</td>
+  </tr>
+
+  <tr>
+   <td>[%- LxERP.t8("Project") %]:</td>
+   <td>[% L.select_tag('project_id', PROJECTS, default=SELF.object.globalproject_id, with_empty=1, style=style) %]</td>
+  </tr>
+
+  <tr>
+   <td>[%- LxERP.t8("Transaction description") %]:</td>
+   <td>[% L.input_tag('transaction_description', '', style=style) %]</td>
+  </tr>
+ </table>
+
+ <p>
+  [% L.button_tag('filter_record_links()', LxERP.t8("Search")) %]
+  [% L.button_tag('add_selected_record_links()', LxERP.t8("Add links"), id='add_selected_record_links_button', disabled=1) %]
+  <a href="#" onclick="record_links_reset_form();">[%- LxERP.t8("Reset") %]</a>
+  <a href="#" onclick="record_links_cancel();">[% LxERP.t8("Cancel") %]</a>
+ </p>
+
+ <hr>
+
+ <div id="record_list_filtered_list"></div>
+
+</form>
+
+<script type="text/javascript">
+<!--
+$(function() {
+  $('.jqmWindow input[name=vc_name]').focus();
+});
+
+function record_links_reset_form() {
+  $('.jqmWindow form input[type=text]').val('');
+  $('.jqmWindow form select').prop('selectedIndex', 0);
+}
+
+function record_links_cancel() {
+  $('.jqmWindow').jqmHide();
+  $('.jqmWindow').remove();
+}
+
+function filter_record_links() {
+  var url="controller.pl?action=RecordLinks/ajax_add_list&" + $(".jqmWindow form").serialize();
+  $.ajax({
+    url: url,
+    success: function(new_data) {
+      $("#record_list_filtered_list").html(new_data['html']);
+      $('#add_selected_record_links_button').prop('disabled', new_data['count'] == 0);
+    }
+  });
+}
+
+function add_selected_record_links() {
+  var url="controller.pl?action=RecordLinks/ajax_add_do&" + $(".jqmWindow form").serialize();
+  $.ajax({
+    url: url,
+    success: function(new_html) {
+      $('#record_links_list').replaceWith(new_html);
+      record_links_cancel();
+    }
+  });
+}
+-->
+</script>
diff --git a/templates/webpages/record_links/add_list.html b/templates/webpages/record_links/add_list.html
new file mode 100644 (file)
index 0000000..9ca7b45
--- /dev/null
@@ -0,0 +1,34 @@
+[%- USE T8 -%][%- USE HTML -%][%- USE LxERP -%][%- USE P -%][%- USE L -%]
+[%- IF !OBJECTS.size %]
+<p class="message_hint">[% 'No data was found.' | $T8 %]</p>
+[%- ELSE %]
+<table width="100%">
+ <tr class="listheading">
+  <th>[% L.checkbox_tag('record_links_check_all') %]</th>
+  <th>[% IF vc == 'customer' %][%- LxERP.t8("Customer") %][%- ELSE %][%- LxERP.t8("Vendor") %][%- END %]</th>
+  <th>[%- LxERP.t8("Number") %]</th>
+  <th>[%- LxERP.t8("Date") %]</th>
+  <th>[%- LxERP.t8("Transaction description") %]</th>
+  <th>[%- LxERP.t8("Project") %]</th>
+ </tr>
+
+ [%- FOREACH object = OBJECTS %]
+ <tr class="listrow[% loop.count % 2 %]">
+  <td>[% L.checkbox_tag('link_id[]', value=object.id) %]</td>
+  <td>[%- HTML.escape(object.$vc.name) %]</td>
+  <td>[%- HTML.escape(object.$number_column) %]</td>
+  <td>[%- HTML.escape(object.transdate.to_kivitendo) %]</td>
+  <td>[%- HTML.escape(object.transaction_description) %]</td>
+  <td>[%- P.project(object.globalproject, no_link=1) %]</td>
+ </tr>
+ [%- END %]
+</table>
+
+<script type="text/javascript">
+ <!--
+$(function() {
+  $('#record_links_check_all').checkall('INPUT[name="link_id[]"]');
+});
+-->
+</script>
+[%- END %]
index afffd5c..649140a 100644 (file)
     </td>
   </tr>
 [%- END %]
-
-[%- IF 0 # is_nontaxable %]
-  <input type=hidden name=nextsub value=generate_tax_report>
-
-  <input type=hidden name=db value=[% db %]>
-  <input type=hidden name=sort value=transdate>
-  <input type=hidden name=report value='[% report %]'>
-
-  <tr>
-    <th align=right>[% 'From' | $T8 %]</th>
-    <td>[% L.date_tag('fromdate', fromdate) %]</td>
-    <th align=right>[% 'Bis' | $T8 %]</th>
-    <td>[% L.date_tag('todate', todate) %]</td>
-  </tr>
-[%- PROCESS cash_or_accrual %]
-  <tr>
-    <th align=right>[% 'Include in Report' | $T8 %]</th>
-    <td colspan=3>
-      <table>
-        <tr>
-          <td><input name="l_id" class=checkbox type=checkbox value=Y></td>
-          <td>[% 'ID' | $T8 %]</td>
-          <td><input name="l_invnumber" class=checkbox type=checkbox value=Y checked></td>
-          <td>[% 'Invoice' | $T8 %]</td>
-          <td><input name="l_transdate" class=checkbox type=checkbox value=Y checked></td>
-          <td>[% 'Date' | $T8 %]</td>
-        </tr>
-        <tr>
-          <td><input name="l_name" class=checkbox type=checkbox value=Y checked></td>
-          <td>
-            [% LxERP.t8('Customer') IF db == 'ar' %]
-            [% LxERP.t8('Vendor')   IF db == 'ap' %]
-       </td>
-          <td><input name="l_netamount" class=checkbox type=checkbox value=Y checked></td>
-          <td>[% 'Amount' | $T8 %]</td>
-          <td><input name="l_amount" class=checkbox type=checkbox value=Y></td>
-          <td>[% 'Total' | $T8 %]</td>
-        </tr>
-        <tr>
-          <td><input name="l_subtotal" class=checkbox type=checkbox value=Y></td>
-          <td>[% 'Subtotal' | $T8 %]</td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-[%- END %]
 </table>
 
 <hr size=3 noshade>
index 36515b8..b8f209d 100644 (file)
@@ -46,7 +46,7 @@
      [%- IF show_post_payments_button %]
       <th class="listheading" colspan="3">&nbsp;</th>
       <th class="listheading">
-        [% L.date_tag('set_all_execution_date') %]
+        [% L.date_tag('set_all_execution_date', '', onchange='set_all_execution_date_fields(this);') %]
       </th>
      [%- ELSE %]
       <th class="listheading" colspan="4">&nbsp;</th>
 
   <script type="text/javascript">
    <!--
-    function set_all_execution_date_fields() {
-      var new_date = $('#set_all_execution_date').val();
+    function set_all_execution_date_fields(input) {
+      var new_date = $(input).val();
       $('INPUT[name="items[].execution_date"]').each(function() {
         $(this).val(new_date);
       });
     }
 
     $(function() {
-      $('#set_all_execution_date').change(set_all_execution_date_fields);
       $("#select_all").checkall('INPUT[name="items[].selected"]');
     });
      -->