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
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 = ? |;
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,
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;
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 = (
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];
}
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
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 });
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,
$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
#
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;
+++ /dev/null
-# 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;
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;
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;
use SL::DB::UnitsLanguage;
use SL::DB::VC;
use SL::DB::Vendor;
-use SL::DB::VendorTax;
use SL::DB::Warehouse;
1;
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',
oe => 'order',
parts => 'part',
partsgroup => 'parts_group',
- partstax => 'parts_tax',
payment_terms => 'payment_term',
periodic_invoices => 'periodic_invoice',
periodic_invoices_configs => 'periodic_invoices_config',
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);
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' }
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;
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' }
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';
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;
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),
});
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' }
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;
+++ /dev/null
-# 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;
-;
+++ /dev/null
-# 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;
-;
+++ /dev/null
-# 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;
-;
+++ /dev/null
-# 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;
+++ /dev/null
-# 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;
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};
::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) = @_;
}
$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 = ( );
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}));
}
}
- # 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') {
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);
}
# 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},
$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},
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,
$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"},
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;
$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 = ?))|;
$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 = ?))|;
$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 = ?))|;
$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 = ?))|;
$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 = ?))|;
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;
sub javascripts_inline {
my $self = shift;
+ $self->SUPER::javascripts_inline;
my $sections = [ section_menu($self->menu) ];
$self->render('menu/menu', { output => 0 },
sections => $sections,
use strict;
use parent qw(SL::Layout::Base);
+use List::MoreUtils qw(apply);
+
sub javascripts_inline {
_setup_formats(),
_setup_focus(),
}
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 {
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 {
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 = '';
$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 {
alignment => $data[0]->{columns}->[$_]->{alignment},
}, (0..scalar(@columns) - 1);
- $params{form_prefix} ||= 'record_links';
-
return $self->render(
'presenter/record/record_list',
%params,
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') } ],
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' ],
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') } ],
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' ],
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') } ],
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' ],
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') } ],
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' ],
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') } ],
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' ],
FROM acc_trans acc
INNER JOIN chart c ON (acc.chart_id = c.id AND c.link LIKE '%AR_paid%')
WHERE 1=1 $inwhere AND acc.trans_id = ac.trans_id)
- / (SELECT amount FROM ar WHERE id = ac.trans_id)
- ELSE 0
+ / (SELECT amount FROM ar WHERE id = ac.trans_id)
+ ELSE 0
/* ar amount is zero, or we are checking with a non-ar-transaction, so we return 0 in both cases as multiplicator of ac.amount */
END
) AS amount, c.$category
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
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);
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 {
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>
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
+++ /dev/null
-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;
'no_html' => 1,
'no_opendocument' => 1,);
- $::request->layout->use_javascript('jquery.checkall.js');
$form->header();
print $form->parse_html_template("dunning/show_invoices");
$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'
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);
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);
$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->{$_} },
# $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')
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'),
$invoice->{reference_prefix} = $prefix;
}
- $::request->layout->use_javascript('jquery.checkall.js');
$form->header();
print $form->parse_html_template('sepa/bank_transfer_add',
{ 'INVOICES' => $invoices,
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';
$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();
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;
margin: 0;
}
-.tabwidget ul::after {
+.tabwidget > ul::after {
content: ".";
display: block;
height: 0;
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;
}
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;
margin: 0;
}
-.tabwidget ul::after {
+.tabwidget > ul::after {
content: ".";
display: block;
height: 0;
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;
}
--- /dev/null
+/* 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;
+}
--- /dev/null
+/* 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: '<Zurück',
+ nextText: 'Vor>',
+ 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']);
+});
--- /dev/null
+/* 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']);
+});
--- /dev/null
+jquery.ui.datepicker-en-GB.js
\ No newline at end of file
+++ /dev/null
-/* 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;
- };
-};
+++ /dev/null
-/* 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;
-}
+++ /dev/null
-/* 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("×", 1, 200).ttip = Calendar._TT["CLOSE"];
- }
-
- row = Calendar.createElement("tr", thead);
- row.className = "headrow";
-
- this._nav_py = hh("«", 1, -2);
- this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
-
- this._nav_pm = hh("‹", 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("›", 1, 1);
- this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
-
- this._nav_ny = hh("»", 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"] || " ";
-
- 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 = " ";
-
- 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 = " ";
- 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;
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-/*
- 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// 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:";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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"] = "εβδ";
-
+++ /dev/null
-// ** 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:";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-/* 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
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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"] = "주";
+++ /dev/null
-// ** 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"] = "ÁÖ";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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:";
+++ /dev/null
-// ** 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"] = "íåä";
+++ /dev/null
-/* 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
+++ /dev/null
-// ** 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ýž";
+++ /dev/null
-// ** 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";
+++ /dev/null
-// ** 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";
+++ /dev/null
-//////////////////////////////////////////////////////////////////////////////////////////////\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
+++ /dev/null
-// ** 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
'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ügen',
'Address' => 'Adresse',
'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)',
'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',
'Line and column' => 'Zeile und Spalte',
'Line endings' => 'Zeilenumbrüche',
'Link direction' => 'Verknüpfungsrichtung',
+ 'Link to' => 'Verknüpfen mit',
'Linked Records' => 'Verknüpfte Belege',
'List Accounts' => 'Konten anzeigen',
'List Languages' => 'Sprachen anzeigen',
'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',
'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',
'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',
'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.',
'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.',
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/;
--- /dev/null
+-- @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;
[%- USE T8 %]
[%- USE url %]
[%- SET list_spool__callback = href _ '&sort=' _ sort %]
-[% L.javascript_tag('jquery.checkall') %]
<h1>[% title | html %]</h1>
[% L.select_tag('printer', ALL_PRINTERS, title_key = 'printer_description') %]
</form>
-
[%- 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>
-
</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>
[%- 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>
</table>
</td>
</tr>
-
- <script type="text/javascript">
- <!-- Calendar.setup({ inputField : "priceupdate", ifFormat :"[% myconfig_jsc_dateformat %]", align : "BL", button : "trigger1" }); //-->
- </script>
</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 %]
</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>
</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>
$(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();
+ });
})
<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 %]">
+++ /dev/null
-[% USE LxERP %]
-<p class="message_hint">[% LxERP.t8('No data was found.') %]</p>
[%- 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;
$.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;
<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 %]
[%- 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 %]>
</tbody>
</table>
</div>
+
+[% IF edit_record_links %]
+<script type="text/javascript">
+$('#record_links_delete_checkall_[% type %]').checkall("#record_list_[% type %] tbody :checkbox");
+</script>
+[%- END %]
[%- 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>
-
--- /dev/null
+[%- 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>
--- /dev/null
+[%- 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 %]
</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>
[%- IF show_post_payments_button %]
<th class="listheading" colspan="3"> </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"> </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"]');
});
-->